diff --git a/src-gen/Graphics/Vulkan/Constants.hs b/src-gen/Graphics/Vulkan/Constants.hs
--- a/src-gen/Graphics/Vulkan/Constants.hs
+++ b/src-gen/Graphics/Vulkan/Constants.hs
@@ -24,7 +24,7 @@
         pattern VK_MAX_DEVICE_GROUP_SIZE,
         pattern VK_MAX_DEVICE_GROUP_SIZE_KHR)
        where
-import           Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal
 
 pattern VK_MAX_PHYSICAL_DEVICE_NAME_SIZE :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Core_1_0.hsc b/src-gen/Graphics/Vulkan/Core_1_0.hsc
--- a/src-gen/Graphics/Vulkan/Core_1_0.hsc
+++ b/src-gen/Graphics/Vulkan/Core_1_0.hsc
@@ -612,118 +612,129 @@
         vkCmdExecuteCommands, vkCmdExecuteCommandsUnsafe,
         vkCmdExecuteCommandsSafe,
         module Graphics.Vulkan.Types.Enum.IndexType,
-        module Graphics.Vulkan.Types.Struct.Clear,
-        -- ** Types not directly used by the API. Include e.g. structs that are not parameter types of commands, but still defined by the API.
-        module Graphics.Vulkan.Types.Struct.Base,
-        module Graphics.Vulkan.Types.Struct.DispatchIndirectCommand,
-        module Graphics.Vulkan.Types.Struct.DrawInd,
-        module Graphics.Vulkan.Types.Enum.Object)
+        module Graphics.Vulkan.Types.Struct.Clear, -- ** Types not directly used by the API. Include e.g. structs that are not parameter types of commands, but still defined by the API.
+                                                   VkBaseInStructure,
+        VkBaseInStructure', VkBaseOutStructure, VkBaseOutStructure',
+        VkBufferMemoryBarrier, VkBufferMemoryBarrier', -- ' closing tick for hsc2hs
+        VkDispatchIndirectCommand, VkDispatchIndirectCommand', -- ' closing tick for hsc2hs
+        VkDrawIndexedIndirectCommand, VkDrawIndexedIndirectCommand', -- ' closing tick for hsc2hs
+        VkDrawIndirectCommand, VkDrawIndirectCommand', -- ' closing tick for hsc2hs
+        VkImageMemoryBarrier, VkImageMemoryBarrier', -- ' closing tick for hsc2hs
+        VkImageSubresourceRange, VkImageSubresourceRange', VkMemoryBarrier, -- ' closing tick for hsc2hs
+        VkMemoryBarrier', module Graphics.Vulkan.Types.Enum.Object) -- ' closing tick for hsc2hs
        where
-import           GHC.Ptr                                                (Ptr (..))
-import           Graphics.Vulkan.Constants                              (pattern VK_ATTACHMENT_UNUSED,
-                                                                         pattern VK_FALSE,
-                                                                         pattern VK_LOD_CLAMP_NONE,
-                                                                         pattern VK_QUEUE_FAMILY_IGNORED,
-                                                                         pattern VK_REMAINING_ARRAY_LAYERS,
-                                                                         pattern VK_REMAINING_MIP_LEVELS,
-                                                                         pattern VK_SUBPASS_EXTERNAL,
-                                                                         pattern VK_TRUE,
-                                                                         pattern VK_WHOLE_SIZE)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.AccessFlags
-import           Graphics.Vulkan.Types.Enum.Attachment
-import           Graphics.Vulkan.Types.Enum.Blend
-import           Graphics.Vulkan.Types.Enum.BorderColor
-import           Graphics.Vulkan.Types.Enum.Buffer
-import           Graphics.Vulkan.Types.Enum.Color
-import           Graphics.Vulkan.Types.Enum.Command
-import           Graphics.Vulkan.Types.Enum.CompareOp
-import           Graphics.Vulkan.Types.Enum.ComponentSwizzle
-import           Graphics.Vulkan.Types.Enum.CullModeFlags
-import           Graphics.Vulkan.Types.Enum.DependencyFlags
-import           Graphics.Vulkan.Types.Enum.Descriptor
-import           Graphics.Vulkan.Types.Enum.Device
-import           Graphics.Vulkan.Types.Enum.DynamicState
-import           Graphics.Vulkan.Types.Enum.Fence
-import           Graphics.Vulkan.Types.Enum.Filter
-import           Graphics.Vulkan.Types.Enum.Format
-import           Graphics.Vulkan.Types.Enum.FrontFace
-import           Graphics.Vulkan.Types.Enum.Image
-import           Graphics.Vulkan.Types.Enum.IndexType
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.LogicOp
-import           Graphics.Vulkan.Types.Enum.Memory
-import           Graphics.Vulkan.Types.Enum.Object
-import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.Pipeline
-import           Graphics.Vulkan.Types.Enum.PolygonMode
-import           Graphics.Vulkan.Types.Enum.PrimitiveTopology
-import           Graphics.Vulkan.Types.Enum.Query
-import           Graphics.Vulkan.Types.Enum.Queue
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.Sampler
-import           Graphics.Vulkan.Types.Enum.Shader
-import           Graphics.Vulkan.Types.Enum.SharingMode
-import           Graphics.Vulkan.Types.Enum.Sparse
-import           Graphics.Vulkan.Types.Enum.Stencil
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.Subpass
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Enum.VertexInputRate
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.ApplicationInfo
-import           Graphics.Vulkan.Types.Struct.Attachment
-import           Graphics.Vulkan.Types.Struct.Base
-import           Graphics.Vulkan.Types.Struct.Bind
-import           Graphics.Vulkan.Types.Struct.Buffer
-import           Graphics.Vulkan.Types.Struct.Clear
-import           Graphics.Vulkan.Types.Struct.Command
-import           Graphics.Vulkan.Types.Struct.ComponentMapping
-import           Graphics.Vulkan.Types.Struct.ComputePipelineCreateInfo
-import           Graphics.Vulkan.Types.Struct.CopyDescriptorSet
-import           Graphics.Vulkan.Types.Struct.Descriptor
-import           Graphics.Vulkan.Types.Struct.Device
-import           Graphics.Vulkan.Types.Struct.DispatchIndirectCommand
-import           Graphics.Vulkan.Types.Struct.DrawInd
-import           Graphics.Vulkan.Types.Struct.EventCreateInfo
-import           Graphics.Vulkan.Types.Struct.ExtensionProperties
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.Fence
-import           Graphics.Vulkan.Types.Struct.FormatProperties
-import           Graphics.Vulkan.Types.Struct.FramebufferCreateInfo
-import           Graphics.Vulkan.Types.Struct.Image
-import           Graphics.Vulkan.Types.Struct.InstanceCreateInfo
-import           Graphics.Vulkan.Types.Struct.LayerProperties
-import           Graphics.Vulkan.Types.Struct.MappedMemoryRange
-import           Graphics.Vulkan.Types.Struct.Memory
-import           Graphics.Vulkan.Types.Struct.Offset
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
-import           Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures
-import           Graphics.Vulkan.Types.Struct.Pipeline
-import           Graphics.Vulkan.Types.Struct.PushConstantRange
-import           Graphics.Vulkan.Types.Struct.QueryPoolCreateInfo
-import           Graphics.Vulkan.Types.Struct.QueueFamilyProperties
-import           Graphics.Vulkan.Types.Struct.Rect
-import           Graphics.Vulkan.Types.Struct.RenderPass
-import           Graphics.Vulkan.Types.Struct.Sampler
-import           Graphics.Vulkan.Types.Struct.Semaphore
-import           Graphics.Vulkan.Types.Struct.Shader
-import           Graphics.Vulkan.Types.Struct.Sparse
-import           Graphics.Vulkan.Types.Struct.Specialization
-import           Graphics.Vulkan.Types.Struct.StencilOpState
-import           Graphics.Vulkan.Types.Struct.SubmitInfo
-import           Graphics.Vulkan.Types.Struct.Subpass
-import           Graphics.Vulkan.Types.Struct.SubresourceLayout
-import           Graphics.Vulkan.Types.Struct.VertexInput
-import           Graphics.Vulkan.Types.Struct.Viewport
-import           Graphics.Vulkan.Types.Struct.WriteDescriptorSet
-import           System.IO.Unsafe                                       (unsafeDupablePerformIO)
+import GHC.Ptr                                                (Ptr (..))
+import Graphics.Vulkan.Constants                              (pattern VK_ATTACHMENT_UNUSED,
+                                                               pattern VK_FALSE,
+                                                               pattern VK_LOD_CLAMP_NONE,
+                                                               pattern VK_QUEUE_FAMILY_IGNORED,
+                                                               pattern VK_REMAINING_ARRAY_LAYERS,
+                                                               pattern VK_REMAINING_MIP_LEVELS,
+                                                               pattern VK_SUBPASS_EXTERNAL,
+                                                               pattern VK_TRUE,
+                                                               pattern VK_WHOLE_SIZE)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.AccessFlags
+import Graphics.Vulkan.Types.Enum.Attachment
+import Graphics.Vulkan.Types.Enum.Blend
+import Graphics.Vulkan.Types.Enum.BorderColor
+import Graphics.Vulkan.Types.Enum.Buffer
+import Graphics.Vulkan.Types.Enum.Color
+import Graphics.Vulkan.Types.Enum.Command
+import Graphics.Vulkan.Types.Enum.CompareOp
+import Graphics.Vulkan.Types.Enum.ComponentSwizzle
+import Graphics.Vulkan.Types.Enum.CullModeFlags
+import Graphics.Vulkan.Types.Enum.DependencyFlags
+import Graphics.Vulkan.Types.Enum.Descriptor
+import Graphics.Vulkan.Types.Enum.Device
+import Graphics.Vulkan.Types.Enum.DynamicState
+import Graphics.Vulkan.Types.Enum.Fence
+import Graphics.Vulkan.Types.Enum.Filter
+import Graphics.Vulkan.Types.Enum.Format
+import Graphics.Vulkan.Types.Enum.FrontFace
+import Graphics.Vulkan.Types.Enum.Image
+import Graphics.Vulkan.Types.Enum.IndexType
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.LogicOp
+import Graphics.Vulkan.Types.Enum.Memory
+import Graphics.Vulkan.Types.Enum.Object
+import Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import Graphics.Vulkan.Types.Enum.Pipeline
+import Graphics.Vulkan.Types.Enum.PolygonMode
+import Graphics.Vulkan.Types.Enum.PrimitiveTopology
+import Graphics.Vulkan.Types.Enum.Query
+import Graphics.Vulkan.Types.Enum.Queue
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.Sampler
+import Graphics.Vulkan.Types.Enum.Shader
+import Graphics.Vulkan.Types.Enum.SharingMode
+import Graphics.Vulkan.Types.Enum.Sparse
+import Graphics.Vulkan.Types.Enum.Stencil
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.Subpass
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Enum.VertexInputRate
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.ApplicationInfo
+import Graphics.Vulkan.Types.Struct.Attachment
+import Graphics.Vulkan.Types.Struct.Base                      (VkBaseInStructure,
+                                                               VkBaseInStructure', -- ' closing tick for hsc2hs
+                                                               VkBaseOutStructure,
+                                                               VkBaseOutStructure') -- ' closing tick for hsc2hs
+import Graphics.Vulkan.Types.Struct.Bind
+import Graphics.Vulkan.Types.Struct.Buffer
+import Graphics.Vulkan.Types.Struct.Clear
+import Graphics.Vulkan.Types.Struct.Command
+import Graphics.Vulkan.Types.Struct.ComponentMapping
+import Graphics.Vulkan.Types.Struct.ComputePipelineCreateInfo
+import Graphics.Vulkan.Types.Struct.CopyDescriptorSet
+import Graphics.Vulkan.Types.Struct.Descriptor
+import Graphics.Vulkan.Types.Struct.Device
+import Graphics.Vulkan.Types.Struct.DispatchIndirectCommand   (VkDispatchIndirectCommand,
+                                                               VkDispatchIndirectCommand') -- ' closing tick for hsc2hs
+import Graphics.Vulkan.Types.Struct.DrawInd                   (VkDrawIndexedIndirectCommand,
+                                                               VkDrawIndexedIndirectCommand', -- ' closing tick for hsc2hs
+                                                               VkDrawIndirectCommand,
+                                                               VkDrawIndirectCommand') -- ' closing tick for hsc2hs
+import Graphics.Vulkan.Types.Struct.EventCreateInfo
+import Graphics.Vulkan.Types.Struct.ExtensionProperties
+import Graphics.Vulkan.Types.Struct.Extent
+import Graphics.Vulkan.Types.Struct.Fence
+import Graphics.Vulkan.Types.Struct.FormatProperties
+import Graphics.Vulkan.Types.Struct.FramebufferCreateInfo
+import Graphics.Vulkan.Types.Struct.Image
+import Graphics.Vulkan.Types.Struct.InstanceCreateInfo
+import Graphics.Vulkan.Types.Struct.LayerProperties
+import Graphics.Vulkan.Types.Struct.MappedMemoryRange
+import Graphics.Vulkan.Types.Struct.Memory
+import Graphics.Vulkan.Types.Struct.Offset
+import Graphics.Vulkan.Types.Struct.PhysicalDevice
+import Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures
+import Graphics.Vulkan.Types.Struct.Pipeline
+import Graphics.Vulkan.Types.Struct.PushConstantRange
+import Graphics.Vulkan.Types.Struct.QueryPoolCreateInfo
+import Graphics.Vulkan.Types.Struct.QueueFamilyProperties
+import Graphics.Vulkan.Types.Struct.Rect
+import Graphics.Vulkan.Types.Struct.RenderPass
+import Graphics.Vulkan.Types.Struct.Sampler
+import Graphics.Vulkan.Types.Struct.Semaphore
+import Graphics.Vulkan.Types.Struct.Shader
+import Graphics.Vulkan.Types.Struct.Sparse
+import Graphics.Vulkan.Types.Struct.Specialization
+import Graphics.Vulkan.Types.Struct.StencilOpState
+import Graphics.Vulkan.Types.Struct.SubmitInfo
+import Graphics.Vulkan.Types.Struct.Subpass
+import Graphics.Vulkan.Types.Struct.SubresourceLayout
+import Graphics.Vulkan.Types.Struct.VertexInput
+import Graphics.Vulkan.Types.Struct.Viewport
+import Graphics.Vulkan.Types.Struct.WriteDescriptorSet
+import System.IO.Unsafe                                       (unsafeDupablePerformIO)
 
 pattern VkCreateInstance :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Core_1_1.hs b/src-gen/Graphics/Vulkan/Core_1_1.hs
--- a/src-gen/Graphics/Vulkan/Core_1_1.hs
+++ b/src-gen/Graphics/Vulkan/Core_1_1.hs
@@ -36,8 +36,13 @@
 
         -- ** Originally based on VK_KHR_subgroup (extension 94), but the actual enum block used was, incorrectly, that of extension 95
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.BaseTypes, VkPhysicalDeviceLimits,
+        VkPhysicalDeviceLimits', VkPhysicalDeviceProperties,
+        VkPhysicalDeviceProperties', VkPhysicalDeviceProperties2,
+        VkPhysicalDeviceProperties2', VkPhysicalDeviceSparseProperties,
+        VkPhysicalDeviceSparseProperties',
+        VkPhysicalDeviceSubgroupProperties,
+        VkPhysicalDeviceSubgroupProperties',
         module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
         module Graphics.Vulkan.Types.Enum.Shader,
@@ -46,8 +51,9 @@
         -- > #include "vk_platform.h"
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES,
         -- ** Promoted from VK_KHR_bind_memory2
-        module Graphics.Vulkan.Types.Struct.Bind, -- > #include "vk_platform.h"
-                                                  VkBindBufferMemory2,
+        VkBindBufferMemoryInfo, VkBindBufferMemoryInfo',
+        VkBindImageMemoryInfo, VkBindImageMemoryInfo', -- > #include "vk_platform.h"
+                                                       VkBindBufferMemory2,
         pattern VkBindBufferMemory2, HS_vkBindBufferMemory2,
         PFN_vkBindBufferMemory2, vkBindBufferMemory2,
         vkBindBufferMemory2Unsafe, vkBindBufferMemory2Safe,
@@ -55,40 +61,60 @@
         HS_vkBindImageMemory2, PFN_vkBindImageMemory2, vkBindImageMemory2,
         vkBindImageMemory2Unsafe, vkBindImageMemory2Safe,
         module Graphics.Vulkan.Types.Handles,
+        module Graphics.Vulkan.Types.Struct.Bind,
         pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
         pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
         pattern VK_IMAGE_CREATE_ALIAS_BIT,
         -- ** Promoted from VK_KHR_16bit_storage
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.Device,
-        module Graphics.Vulkan.Types.Enum.Device,
-        module Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures,
+        module Graphics.Vulkan.Types.Bitmasks, VkDeviceCreateInfo,
+        VkDeviceCreateInfo', module Graphics.Vulkan.Types.Enum.Device,
+        VkDeviceQueueCreateInfo, VkDeviceQueueCreateInfo',
+        VkPhysicalDevice16BitStorageFeatures,
+        VkPhysicalDevice16BitStorageFeatures', VkPhysicalDeviceFeatures,
+        VkPhysicalDeviceFeatures', VkPhysicalDeviceFeatures2,
+        VkPhysicalDeviceFeatures2',
         -- > #include "vk_platform.h"
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
         -- ** Promoted from VK_KHR_dedicated_allocation
-        module Graphics.Vulkan.Types.Struct.Memory,
+        VkMemoryAllocateInfo, VkMemoryAllocateInfo',
+        VkMemoryDedicatedAllocateInfo, VkMemoryDedicatedAllocateInfo',
+        VkMemoryDedicatedRequirements, VkMemoryDedicatedRequirements',
+        VkMemoryRequirements, VkMemoryRequirements', VkMemoryRequirements2,
+        VkMemoryRequirements2',
         -- > #include "vk_platform.h"
         pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
         pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
         -- ** Promoted from VK_KHR_device_group
-        module Graphics.Vulkan.Types.Struct.Clear,
-        module Graphics.Vulkan.Types.Struct.Command,
+        VkBindSparseInfo, VkBindSparseInfo', VkClearColorValue,
+        VkClearColorValue', VkClearDepthStencilValue,
+        VkClearDepthStencilValue', VkClearValue, VkClearValue',
+        VkCommandBufferBeginInfo, VkCommandBufferBeginInfo',
+        VkCommandBufferInheritanceInfo, VkCommandBufferInheritanceInfo',
         module Graphics.Vulkan.Types.Enum.Command,
-        module Graphics.Vulkan.Types.Struct.Extent,
-        module Graphics.Vulkan.Types.Enum.Image,
-        module Graphics.Vulkan.Types.Struct.Image,
+        VkDeviceGroupBindSparseInfo, VkDeviceGroupBindSparseInfo',
+        VkDeviceGroupCommandBufferBeginInfo,
+        VkDeviceGroupCommandBufferBeginInfo',
+        VkDeviceGroupRenderPassBeginInfo,
+        VkDeviceGroupRenderPassBeginInfo', VkDeviceGroupSubmitInfo,
+        VkDeviceGroupSubmitInfo', VkExtent2D, VkExtent2D', VkExtent3D,
+        VkExtent3D', module Graphics.Vulkan.Types.Enum.Image,
+        VkImageSubresource, VkImageSubresource',
         module Graphics.Vulkan.Types.Enum.Memory,
-        module Graphics.Vulkan.Types.Struct.Offset,
+        VkMemoryAllocateFlagsInfo, VkMemoryAllocateFlagsInfo',
+        VkMemoryAllocateInfo, VkMemoryAllocateInfo', VkOffset2D,
+        VkOffset2D', VkOffset3D, VkOffset3D',
         module Graphics.Vulkan.Types.Enum.PeerMemoryFeatureFlag,
         module Graphics.Vulkan.Types.Enum.Pipeline,
-        module Graphics.Vulkan.Types.Enum.Query,
-        module Graphics.Vulkan.Types.Struct.Rect,
-        module Graphics.Vulkan.Types.Struct.RenderPass,
-        module Graphics.Vulkan.Types.Struct.Sparse,
-        module Graphics.Vulkan.Types.Enum.Sparse,
-        module Graphics.Vulkan.Types.Struct.SubmitInfo,
-        -- > #include "vk_platform.h"
-        VkGetDeviceGroupPeerMemoryFeatures,
+        module Graphics.Vulkan.Types.Enum.Query, VkRect2D, VkRect2D',
+        VkRenderPassBeginInfo, VkRenderPassBeginInfo',
+        VkSparseBufferMemoryBindInfo, VkSparseBufferMemoryBindInfo',
+        VkSparseImageMemoryBind, VkSparseImageMemoryBind',
+        VkSparseImageMemoryBindInfo, VkSparseImageMemoryBindInfo',
+        VkSparseImageOpaqueMemoryBindInfo,
+        VkSparseImageOpaqueMemoryBindInfo', VkSparseMemoryBind,
+        VkSparseMemoryBind', module Graphics.Vulkan.Types.Enum.Sparse,
+        VkSubmitInfo, VkSubmitInfo', -- > #include "vk_platform.h"
+                                     VkGetDeviceGroupPeerMemoryFeatures,
         pattern VkGetDeviceGroupPeerMemoryFeatures,
         HS_vkGetDeviceGroupPeerMemoryFeatures,
         PFN_vkGetDeviceGroupPeerMemoryFeatures,
@@ -110,15 +136,22 @@
         pattern VK_PIPELINE_CREATE_DISPATCH_BASE,
         pattern VK_DEPENDENCY_DEVICE_GROUP_BIT,
         -- ** Promoted from VK_KHR_device_group + VK_KHR_bind_memory2
-        --
-        -- |
+        VkBindBufferMemoryDeviceGroupInfo,
+        VkBindBufferMemoryDeviceGroupInfo', VkBindBufferMemoryInfo,
+        VkBindBufferMemoryInfo', VkBindImageMemoryDeviceGroupInfo,
+        VkBindImageMemoryDeviceGroupInfo', VkBindImageMemoryInfo,
+        VkBindImageMemoryInfo', VkExtent2D, VkExtent2D', VkOffset2D,
+        VkOffset2D', VkRect2D, VkRect2D',
         -- > #include "vk_platform.h"
         pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
         pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
         pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
         -- ** Promoted from VK_KHR_device_group_creation
-        --
-        -- |
+        VkDeviceCreateInfo, VkDeviceCreateInfo',
+        VkDeviceGroupDeviceCreateInfo, VkDeviceGroupDeviceCreateInfo',
+        VkDeviceQueueCreateInfo, VkDeviceQueueCreateInfo',
+        VkPhysicalDeviceFeatures, VkPhysicalDeviceFeatures',
+        VkPhysicalDeviceGroupProperties, VkPhysicalDeviceGroupProperties',
         -- > #include "vk_platform.h"
         VkEnumeratePhysicalDeviceGroups,
         pattern VkEnumeratePhysicalDeviceGroups,
@@ -127,14 +160,23 @@
         vkEnumeratePhysicalDeviceGroups,
         vkEnumeratePhysicalDeviceGroupsUnsafe,
         vkEnumeratePhysicalDeviceGroupsSafe,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
         pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
         pattern VK_MAX_DEVICE_GROUP_SIZE,
         pattern VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
         -- ** Promoted from VK_KHR_get_memory_requirements2
-        module Graphics.Vulkan.Types.Struct.Buffer,
-        -- > #include "vk_platform.h"
-        VkGetImageMemoryRequirements2,
+        VkBufferMemoryRequirementsInfo2, VkBufferMemoryRequirementsInfo2',
+        VkExtent3D, VkExtent3D', VkImageMemoryRequirementsInfo2,
+        VkImageMemoryRequirementsInfo2',
+        VkImageSparseMemoryRequirementsInfo2,
+        VkImageSparseMemoryRequirementsInfo2', VkMemoryRequirements,
+        VkMemoryRequirements', VkMemoryRequirements2,
+        VkMemoryRequirements2', VkSparseImageFormatProperties,
+        VkSparseImageFormatProperties', VkSparseImageMemoryRequirements,
+        VkSparseImageMemoryRequirements', VkSparseImageMemoryRequirements2,
+        VkSparseImageMemoryRequirements2', -- > #include "vk_platform.h"
+                                           VkGetImageMemoryRequirements2,
         pattern VkGetImageMemoryRequirements2,
         HS_vkGetImageMemoryRequirements2,
         PFN_vkGetImageMemoryRequirements2, vkGetImageMemoryRequirements2,
@@ -152,16 +194,42 @@
         vkGetImageSparseMemoryRequirements2,
         vkGetImageSparseMemoryRequirements2Unsafe,
         vkGetImageSparseMemoryRequirements2Safe,
+        module Graphics.Vulkan.Types.Struct.Buffer,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Struct.Image,
+        module Graphics.Vulkan.Types.Struct.Memory,
+        module Graphics.Vulkan.Types.Struct.Sparse,
         pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
         pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
         pattern VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
         pattern VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
         pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
         -- ** Promoted from VK_KHR_get_physical_device_properties2
-        module Graphics.Vulkan.Types.Enum.Format,
-        module Graphics.Vulkan.Types.Struct.FormatProperties,
-        module Graphics.Vulkan.Types.Struct.QueueFamilyProperties,
-        module Graphics.Vulkan.Types.Enum.Queue,
+        VkDeviceCreateInfo, VkDeviceCreateInfo', VkDeviceQueueCreateInfo,
+        VkDeviceQueueCreateInfo', VkExtent3D, VkExtent3D',
+        module Graphics.Vulkan.Types.Enum.Format, VkFormatProperties,
+        VkFormatProperties', VkFormatProperties2, VkFormatProperties2',
+        VkImageFormatProperties, VkImageFormatProperties',
+        VkImageFormatProperties2, VkImageFormatProperties2', VkMemoryHeap,
+        VkMemoryHeap', VkMemoryType, VkMemoryType',
+        VkPhysicalDeviceFeatures, VkPhysicalDeviceFeatures',
+        VkPhysicalDeviceFeatures2, VkPhysicalDeviceFeatures2',
+        VkPhysicalDeviceImageFormatInfo2,
+        VkPhysicalDeviceImageFormatInfo2', VkPhysicalDeviceLimits,
+        VkPhysicalDeviceLimits', VkPhysicalDeviceMemoryProperties,
+        VkPhysicalDeviceMemoryProperties',
+        VkPhysicalDeviceMemoryProperties2,
+        VkPhysicalDeviceMemoryProperties2', VkPhysicalDeviceProperties,
+        VkPhysicalDeviceProperties', VkPhysicalDeviceProperties2,
+        VkPhysicalDeviceProperties2',
+        VkPhysicalDeviceSparseImageFormatInfo2,
+        VkPhysicalDeviceSparseImageFormatInfo2',
+        VkPhysicalDeviceSparseProperties,
+        VkPhysicalDeviceSparseProperties', VkQueueFamilyProperties,
+        VkQueueFamilyProperties', VkQueueFamilyProperties2,
+        VkQueueFamilyProperties2', module Graphics.Vulkan.Types.Enum.Queue,
+        VkSparseImageFormatProperties, VkSparseImageFormatProperties',
+        VkSparseImageFormatProperties2, VkSparseImageFormatProperties2',
         -- > #include "vk_platform.h"
         VkGetPhysicalDeviceFeatures2, pattern VkGetPhysicalDeviceFeatures2,
         HS_vkGetPhysicalDeviceFeatures2, PFN_vkGetPhysicalDeviceFeatures2,
@@ -207,6 +275,10 @@
         vkGetPhysicalDeviceSparseImageFormatProperties2,
         vkGetPhysicalDeviceSparseImageFormatProperties2Unsafe,
         vkGetPhysicalDeviceSparseImageFormatProperties2Safe,
+        module Graphics.Vulkan.Types.Struct.Device,
+        module Graphics.Vulkan.Types.Struct.FormatProperties,
+        module Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures,
+        module Graphics.Vulkan.Types.Struct.QueueFamilyProperties,
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
         pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
@@ -228,15 +300,32 @@
         pattern VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
         -- ** Promoted from VK_KHR_maintenance2
         module Graphics.Vulkan.Types.Enum.AccessFlags,
-        module Graphics.Vulkan.Types.Struct.Attachment,
+        VkAttachmentDescription, VkAttachmentDescription',
         module Graphics.Vulkan.Types.Enum.Attachment,
-        module Graphics.Vulkan.Types.Struct.ComponentMapping,
+        VkAttachmentReference, VkAttachmentReference', VkComponentMapping,
+        VkComponentMapping',
         module Graphics.Vulkan.Types.Enum.ComponentSwizzle,
         module Graphics.Vulkan.Types.Enum.DependencyFlags,
-        module Graphics.Vulkan.Types.Struct.InputAttachmentAspectReference,
-        module Graphics.Vulkan.Types.Struct.Pipeline,
+        VkImageSubresourceRange, VkImageSubresourceRange',
+        VkImageViewCreateInfo, VkImageViewCreateInfo',
+        VkImageViewUsageCreateInfo, VkImageViewUsageCreateInfo',
+        VkInputAttachmentAspectReference,
+        VkInputAttachmentAspectReference', VkPhysicalDeviceLimits,
+        VkPhysicalDeviceLimits', VkPhysicalDevicePointClippingProperties,
+        VkPhysicalDevicePointClippingProperties',
+        VkPhysicalDeviceProperties, VkPhysicalDeviceProperties',
+        VkPhysicalDeviceProperties2, VkPhysicalDeviceProperties2',
+        VkPhysicalDeviceSparseProperties,
+        VkPhysicalDeviceSparseProperties',
+        VkPipelineTessellationDomainOriginStateCreateInfo,
+        VkPipelineTessellationDomainOriginStateCreateInfo',
+        VkPipelineTessellationStateCreateInfo,
+        VkPipelineTessellationStateCreateInfo',
         module Graphics.Vulkan.Types.Enum.PointClippingBehavior,
-        module Graphics.Vulkan.Types.Struct.Subpass,
+        VkRenderPassCreateInfo, VkRenderPassCreateInfo',
+        VkRenderPassInputAttachmentAspectCreateInfo,
+        VkRenderPassInputAttachmentAspectCreateInfo', VkSubpassDependency,
+        VkSubpassDependency', VkSubpassDescription, VkSubpassDescription',
         module Graphics.Vulkan.Types.Enum.Subpass,
         module Graphics.Vulkan.Types.Enum.TessellationDomainOrigin,
         -- > #include "vk_platform.h"
@@ -249,20 +338,51 @@
         pattern VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
         pattern VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
         -- ** Promoted from VK_KHR_multiview
-        --
-        -- |
+        VkAttachmentDescription, VkAttachmentDescription',
+        VkAttachmentReference, VkAttachmentReference', VkDeviceCreateInfo,
+        VkDeviceCreateInfo', VkDeviceQueueCreateInfo,
+        VkDeviceQueueCreateInfo', VkPhysicalDeviceFeatures,
+        VkPhysicalDeviceFeatures', VkPhysicalDeviceFeatures2,
+        VkPhysicalDeviceFeatures2', VkPhysicalDeviceLimits,
+        VkPhysicalDeviceLimits', VkPhysicalDeviceMultiviewFeatures,
+        VkPhysicalDeviceMultiviewFeatures',
+        VkPhysicalDeviceMultiviewProperties,
+        VkPhysicalDeviceMultiviewProperties', VkPhysicalDeviceProperties,
+        VkPhysicalDeviceProperties', VkPhysicalDeviceProperties2,
+        VkPhysicalDeviceProperties2', VkPhysicalDeviceSparseProperties,
+        VkPhysicalDeviceSparseProperties', VkRenderPassCreateInfo,
+        VkRenderPassCreateInfo', VkRenderPassMultiviewCreateInfo,
+        VkRenderPassMultiviewCreateInfo', VkSubpassDependency,
+        VkSubpassDependency', VkSubpassDescription, VkSubpassDescription',
         -- > #include "vk_platform.h"
         pattern VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
-        pattern VK_DEPENDENCY_VIEW_LOCAL_BIT,
-        -- ** Promoted from VK_KHR_variable_pointers
-        --
-        -- |
+        pattern VK_DEPENDENCY_VIEW_LOCAL_BIT, -- ** Promoted from VK_KHR_variable_pointers
+                                              VkDeviceCreateInfo,
+        VkDeviceCreateInfo', VkDeviceQueueCreateInfo,
+        VkDeviceQueueCreateInfo', VkPhysicalDeviceFeatures,
+        VkPhysicalDeviceFeatures', VkPhysicalDeviceFeatures2,
+        VkPhysicalDeviceFeatures2',
+        VkPhysicalDeviceVariablePointerFeatures,
+        VkPhysicalDeviceVariablePointerFeatures',
         -- > #include "vk_platform.h"
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
         -- ** Originally based on VK_KHR_protected_memory (extension 146), which was never published; thus the mystifying large value= numbers below. These are not aliased since they weren't actually promoted from an extension.
-        module Graphics.Vulkan.Types.Struct.ProtectedSubmitInfo,
+        VkDeviceCreateInfo, VkDeviceCreateInfo', VkDeviceQueueCreateInfo,
+        VkDeviceQueueCreateInfo', VkDeviceQueueInfo2, VkDeviceQueueInfo2',
+        VkPhysicalDeviceFeatures, VkPhysicalDeviceFeatures',
+        VkPhysicalDeviceFeatures2, VkPhysicalDeviceFeatures2',
+        VkPhysicalDeviceLimits, VkPhysicalDeviceLimits',
+        VkPhysicalDeviceProperties, VkPhysicalDeviceProperties',
+        VkPhysicalDeviceProperties2, VkPhysicalDeviceProperties2',
+        VkPhysicalDeviceProtectedMemoryFeatures,
+        VkPhysicalDeviceProtectedMemoryFeatures',
+        VkPhysicalDeviceProtectedMemoryProperties,
+        VkPhysicalDeviceProtectedMemoryProperties',
+        VkPhysicalDeviceSparseProperties,
+        VkPhysicalDeviceSparseProperties', VkProtectedSubmitInfo,
+        VkProtectedSubmitInfo', VkSubmitInfo, VkSubmitInfo',
         -- > #include "vk_platform.h"
         VkGetDeviceQueue2, pattern VkGetDeviceQueue2, HS_vkGetDeviceQueue2,
         PFN_vkGetDeviceQueue2, vkGetDeviceQueue2, vkGetDeviceQueue2Unsafe,
@@ -278,12 +398,31 @@
         pattern VK_IMAGE_CREATE_PROTECTED_BIT,
         pattern VK_COMMAND_POOL_CREATE_PROTECTED_BIT,
         -- ** Promoted from VK_KHR_sampler_ycbcr_conversion
+        VkBindImageMemoryInfo, VkBindImageMemoryInfo',
+        VkBindImagePlaneMemoryInfo, VkBindImagePlaneMemoryInfo',
         module Graphics.Vulkan.Types.Enum.BorderColor,
         module Graphics.Vulkan.Types.Enum.ChromaLocation,
-        module Graphics.Vulkan.Types.Enum.CompareOp,
-        module Graphics.Vulkan.Types.Enum.Filter,
-        module Graphics.Vulkan.Types.Enum.Sampler,
-        module Graphics.Vulkan.Types.Struct.Sampler,
+        module Graphics.Vulkan.Types.Enum.CompareOp, VkComponentMapping,
+        VkComponentMapping', VkDeviceCreateInfo, VkDeviceCreateInfo',
+        VkDeviceQueueCreateInfo, VkDeviceQueueCreateInfo', VkExtent3D,
+        VkExtent3D', module Graphics.Vulkan.Types.Enum.Filter,
+        VkImageFormatProperties, VkImageFormatProperties',
+        VkImageFormatProperties2, VkImageFormatProperties2',
+        VkImageMemoryRequirementsInfo2, VkImageMemoryRequirementsInfo2',
+        VkImagePlaneMemoryRequirementsInfo,
+        VkImagePlaneMemoryRequirementsInfo', VkImageSubresourceRange,
+        VkImageSubresourceRange', VkImageViewCreateInfo,
+        VkImageViewCreateInfo', VkPhysicalDeviceFeatures,
+        VkPhysicalDeviceFeatures', VkPhysicalDeviceFeatures2,
+        VkPhysicalDeviceFeatures2',
+        VkPhysicalDeviceSamplerYcbcrConversionFeatures,
+        VkPhysicalDeviceSamplerYcbcrConversionFeatures',
+        module Graphics.Vulkan.Types.Enum.Sampler, VkSamplerCreateInfo,
+        VkSamplerCreateInfo', VkSamplerYcbcrConversionCreateInfo,
+        VkSamplerYcbcrConversionCreateInfo',
+        VkSamplerYcbcrConversionImageFormatProperties,
+        VkSamplerYcbcrConversionImageFormatProperties',
+        VkSamplerYcbcrConversionInfo, VkSamplerYcbcrConversionInfo',
         -- > #include "vk_platform.h"
         VkCreateSamplerYcbcrConversion,
         pattern VkCreateSamplerYcbcrConversion,
@@ -302,6 +441,8 @@
         module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.ComponentMapping,
+        module Graphics.Vulkan.Types.Struct.Sampler,
         pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
         pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
         pattern VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
@@ -356,7 +497,9 @@
         pattern VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
         -- ** Promoted from VK_KHR_descriptor_update_template
         module Graphics.Vulkan.Types.Enum.Descriptor,
-        module Graphics.Vulkan.Types.Struct.Descriptor,
+        VkDescriptorUpdateTemplateCreateInfo,
+        VkDescriptorUpdateTemplateCreateInfo',
+        VkDescriptorUpdateTemplateEntry, VkDescriptorUpdateTemplateEntry',
         -- > #include "vk_platform.h"
         VkCreateDescriptorUpdateTemplate,
         pattern VkCreateDescriptorUpdateTemplate,
@@ -379,12 +522,28 @@
         vkUpdateDescriptorSetWithTemplate,
         vkUpdateDescriptorSetWithTemplateUnsafe,
         vkUpdateDescriptorSetWithTemplateSafe,
+        module Graphics.Vulkan.Types.Struct.Descriptor,
         pattern VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
         pattern VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
         -- ** Promoted from VK_KHR_external_memory_capabilities
-        module Graphics.Vulkan.Types.Enum.Buffer,
-        module Graphics.Vulkan.Types.Struct.External,
+        module Graphics.Vulkan.Types.Enum.Buffer, VkExtent3D, VkExtent3D',
+        VkExternalBufferProperties, VkExternalBufferProperties',
+        VkExternalImageFormatProperties, VkExternalImageFormatProperties',
         module Graphics.Vulkan.Types.Enum.External,
+        VkExternalMemoryProperties, VkExternalMemoryProperties',
+        VkImageFormatProperties, VkImageFormatProperties',
+        VkImageFormatProperties2, VkImageFormatProperties2',
+        VkPhysicalDeviceExternalBufferInfo,
+        VkPhysicalDeviceExternalBufferInfo',
+        VkPhysicalDeviceExternalImageFormatInfo,
+        VkPhysicalDeviceExternalImageFormatInfo',
+        VkPhysicalDeviceIDProperties, VkPhysicalDeviceIDProperties',
+        VkPhysicalDeviceImageFormatInfo2,
+        VkPhysicalDeviceImageFormatInfo2', VkPhysicalDeviceLimits,
+        VkPhysicalDeviceLimits', VkPhysicalDeviceProperties,
+        VkPhysicalDeviceProperties', VkPhysicalDeviceProperties2,
+        VkPhysicalDeviceProperties2', VkPhysicalDeviceSparseProperties,
+        VkPhysicalDeviceSparseProperties',
         -- > #include "vk_platform.h"
         VkGetPhysicalDeviceExternalBufferProperties,
         pattern VkGetPhysicalDeviceExternalBufferProperties,
@@ -393,23 +552,29 @@
         vkGetPhysicalDeviceExternalBufferProperties,
         vkGetPhysicalDeviceExternalBufferPropertiesUnsafe,
         vkGetPhysicalDeviceExternalBufferPropertiesSafe,
+        module Graphics.Vulkan.Types.Struct.External,
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
         pattern VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
         pattern VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
         pattern VK_LUID_SIZE, -- ** Promoted from VK_KHR_external_memory
-                              module Graphics.Vulkan.Types.Struct.Export,
+                              VkBufferCreateInfo, VkBufferCreateInfo',
+        VkExportMemoryAllocateInfo, VkExportMemoryAllocateInfo',
+        VkExtent3D, VkExtent3D', VkExternalMemoryBufferCreateInfo,
+        VkExternalMemoryBufferCreateInfo', VkExternalMemoryImageCreateInfo,
+        VkExternalMemoryImageCreateInfo', VkImageCreateInfo,
+        VkImageCreateInfo', VkMemoryAllocateInfo, VkMemoryAllocateInfo',
         module Graphics.Vulkan.Types.Enum.SharingMode,
         -- > #include "vk_platform.h"
         pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
         pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
         pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
         pattern VK_ERROR_INVALID_EXTERNAL_HANDLE,
-        pattern VK_QUEUE_FAMILY_EXTERNAL,
-        -- ** Promoted from VK_KHR_external_fence_capabilities
-        --
-        -- |
+        pattern VK_QUEUE_FAMILY_EXTERNAL, -- ** Promoted from VK_KHR_external_fence_capabilities
+                                          VkExternalFenceProperties,
+        VkExternalFenceProperties', VkPhysicalDeviceExternalFenceInfo,
+        VkPhysicalDeviceExternalFenceInfo',
         -- > #include "vk_platform.h"
         VkGetPhysicalDeviceExternalFenceProperties,
         pattern VkGetPhysicalDeviceExternalFenceProperties,
@@ -421,18 +586,21 @@
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
         pattern VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
         -- ** Promoted from VK_KHR_external_fence
-        module Graphics.Vulkan.Types.Enum.Fence,
-        module Graphics.Vulkan.Types.Struct.Fence,
+        VkExportFenceCreateInfo, VkExportFenceCreateInfo',
+        module Graphics.Vulkan.Types.Enum.Fence, VkFenceCreateInfo,
+        VkFenceCreateInfo',
         -- > #include "vk_platform.h"
         pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
         -- ** Promoted from VK_KHR_external_semaphore
-        module Graphics.Vulkan.Types.Struct.Semaphore,
+        VkExportSemaphoreCreateInfo, VkExportSemaphoreCreateInfo',
+        VkSemaphoreCreateInfo, VkSemaphoreCreateInfo',
         module Graphics.Vulkan.Types.Enum.SemaphoreImportFlag,
         -- > #include "vk_platform.h"
         pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
         -- ** Promoted from VK_KHR_external_semaphore_capabilities
-        --
-        -- |
+        VkExternalSemaphoreProperties, VkExternalSemaphoreProperties',
+        VkPhysicalDeviceExternalSemaphoreInfo,
+        VkPhysicalDeviceExternalSemaphoreInfo',
         -- > #include "vk_platform.h"
         VkGetPhysicalDeviceExternalSemaphoreProperties,
         pattern VkGetPhysicalDeviceExternalSemaphoreProperties,
@@ -444,10 +612,15 @@
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
         pattern VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
         -- ** Promoted from VK_KHR_maintenance3
-        --
-        -- |
-        -- > #include "vk_platform.h"
-        VkGetDescriptorSetLayoutSupport,
+        VkDescriptorSetLayoutSupport, VkDescriptorSetLayoutSupport',
+        VkPhysicalDeviceLimits, VkPhysicalDeviceLimits',
+        VkPhysicalDeviceMaintenance3Properties,
+        VkPhysicalDeviceMaintenance3Properties',
+        VkPhysicalDeviceProperties, VkPhysicalDeviceProperties',
+        VkPhysicalDeviceProperties2, VkPhysicalDeviceProperties2',
+        VkPhysicalDeviceSparseProperties,
+        VkPhysicalDeviceSparseProperties', -- > #include "vk_platform.h"
+                                           VkGetDescriptorSetLayoutSupport,
         pattern VkGetDescriptorSetLayoutSupport,
         HS_vkGetDescriptorSetLayoutSupport,
         PFN_vkGetDescriptorSetLayoutSupport,
@@ -457,89 +630,131 @@
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
         pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
         -- ** Promoted from VK_KHR_shader_draw_parameters, with a feature support query added
-        --
-        -- |
+        VkDeviceCreateInfo, VkDeviceCreateInfo', VkDeviceQueueCreateInfo,
+        VkDeviceQueueCreateInfo', VkPhysicalDeviceFeatures,
+        VkPhysicalDeviceFeatures', VkPhysicalDeviceFeatures2,
+        VkPhysicalDeviceFeatures2',
+        VkPhysicalDeviceShaderDrawParameterFeatures,
+        VkPhysicalDeviceShaderDrawParameterFeatures',
         -- > #include "vk_platform.h"
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES)
        where
-import           GHC.Ptr                                                     (Ptr (..))
-import           Graphics.Vulkan.Constants                                   (pattern VK_LUID_SIZE,
-                                                                              pattern VK_MAX_DEVICE_GROUP_SIZE,
-                                                                              pattern VK_QUEUE_FAMILY_EXTERNAL)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.AccessFlags
-import           Graphics.Vulkan.Types.Enum.Attachment
-import           Graphics.Vulkan.Types.Enum.BorderColor
-import           Graphics.Vulkan.Types.Enum.Buffer
-import           Graphics.Vulkan.Types.Enum.ChromaLocation
-import           Graphics.Vulkan.Types.Enum.Command
-import           Graphics.Vulkan.Types.Enum.CompareOp
-import           Graphics.Vulkan.Types.Enum.ComponentSwizzle
-import           Graphics.Vulkan.Types.Enum.DependencyFlags
-import           Graphics.Vulkan.Types.Enum.Descriptor
-import           Graphics.Vulkan.Types.Enum.Device
-import           Graphics.Vulkan.Types.Enum.External
-import           Graphics.Vulkan.Types.Enum.Fence
-import           Graphics.Vulkan.Types.Enum.Filter
-import           Graphics.Vulkan.Types.Enum.Format
-import           Graphics.Vulkan.Types.Enum.Image
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.Memory
-import           Graphics.Vulkan.Types.Enum.Object                           (VkObjectType (..))
-import           Graphics.Vulkan.Types.Enum.PeerMemoryFeatureFlag
-import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.Pipeline
-import           Graphics.Vulkan.Types.Enum.PointClippingBehavior
-import           Graphics.Vulkan.Types.Enum.Query
-import           Graphics.Vulkan.Types.Enum.Queue
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.Sampler
-import           Graphics.Vulkan.Types.Enum.SemaphoreImportFlag
-import           Graphics.Vulkan.Types.Enum.Shader
-import           Graphics.Vulkan.Types.Enum.SharingMode
-import           Graphics.Vulkan.Types.Enum.Sparse
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.SubgroupFeatureFlags
-import           Graphics.Vulkan.Types.Enum.Subpass
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Enum.TessellationDomainOrigin
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.Attachment
-import           Graphics.Vulkan.Types.Struct.Bind
-import           Graphics.Vulkan.Types.Struct.Buffer
-import           Graphics.Vulkan.Types.Struct.Clear
-import           Graphics.Vulkan.Types.Struct.Command
-import           Graphics.Vulkan.Types.Struct.ComponentMapping
-import           Graphics.Vulkan.Types.Struct.Descriptor
-import           Graphics.Vulkan.Types.Struct.Device
-import           Graphics.Vulkan.Types.Struct.Export
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.External
-import           Graphics.Vulkan.Types.Struct.Fence
-import           Graphics.Vulkan.Types.Struct.FormatProperties
-import           Graphics.Vulkan.Types.Struct.Image
-import           Graphics.Vulkan.Types.Struct.InputAttachmentAspectReference
-import           Graphics.Vulkan.Types.Struct.Memory
-import           Graphics.Vulkan.Types.Struct.Offset
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
-import           Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures
-import           Graphics.Vulkan.Types.Struct.Pipeline
-import           Graphics.Vulkan.Types.Struct.ProtectedSubmitInfo
-import           Graphics.Vulkan.Types.Struct.QueueFamilyProperties
-import           Graphics.Vulkan.Types.Struct.Rect
-import           Graphics.Vulkan.Types.Struct.RenderPass
-import           Graphics.Vulkan.Types.Struct.Sampler
-import           Graphics.Vulkan.Types.Struct.Semaphore
-import           Graphics.Vulkan.Types.Struct.Sparse
-import           Graphics.Vulkan.Types.Struct.SubmitInfo
-import           Graphics.Vulkan.Types.Struct.Subpass
-import           System.IO.Unsafe                                            (unsafeDupablePerformIO)
+import GHC.Ptr                                                     (Ptr (..))
+import Graphics.Vulkan.Constants                                   (pattern VK_LUID_SIZE,
+                                                                    pattern VK_MAX_DEVICE_GROUP_SIZE,
+                                                                    pattern VK_QUEUE_FAMILY_EXTERNAL)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.AccessFlags
+import Graphics.Vulkan.Types.Enum.Attachment
+import Graphics.Vulkan.Types.Enum.BorderColor
+import Graphics.Vulkan.Types.Enum.Buffer
+import Graphics.Vulkan.Types.Enum.ChromaLocation
+import Graphics.Vulkan.Types.Enum.Command
+import Graphics.Vulkan.Types.Enum.CompareOp
+import Graphics.Vulkan.Types.Enum.ComponentSwizzle
+import Graphics.Vulkan.Types.Enum.DependencyFlags
+import Graphics.Vulkan.Types.Enum.Descriptor
+import Graphics.Vulkan.Types.Enum.Device
+import Graphics.Vulkan.Types.Enum.External
+import Graphics.Vulkan.Types.Enum.Fence
+import Graphics.Vulkan.Types.Enum.Filter
+import Graphics.Vulkan.Types.Enum.Format
+import Graphics.Vulkan.Types.Enum.Image
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.Memory
+import Graphics.Vulkan.Types.Enum.Object                           (VkObjectType (..))
+import Graphics.Vulkan.Types.Enum.PeerMemoryFeatureFlag
+import Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import Graphics.Vulkan.Types.Enum.Pipeline
+import Graphics.Vulkan.Types.Enum.PointClippingBehavior
+import Graphics.Vulkan.Types.Enum.Query
+import Graphics.Vulkan.Types.Enum.Queue
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.Sampler
+import Graphics.Vulkan.Types.Enum.SemaphoreImportFlag
+import Graphics.Vulkan.Types.Enum.Shader
+import Graphics.Vulkan.Types.Enum.SharingMode
+import Graphics.Vulkan.Types.Enum.Sparse
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.SubgroupFeatureFlags
+import Graphics.Vulkan.Types.Enum.Subpass
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Enum.TessellationDomainOrigin
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.Attachment                     (VkAttachmentDescription,
+                                                                    VkAttachmentDescription',
+                                                                    VkAttachmentReference,
+                                                                    VkAttachmentReference')
+import Graphics.Vulkan.Types.Struct.Bind
+import Graphics.Vulkan.Types.Struct.Buffer
+import Graphics.Vulkan.Types.Struct.Clear                          (VkClearColorValue,
+                                                                    VkClearColorValue',
+                                                                    VkClearDepthStencilValue,
+                                                                    VkClearDepthStencilValue',
+                                                                    VkClearValue,
+                                                                    VkClearValue')
+import Graphics.Vulkan.Types.Struct.Command                        (VkCommandBufferBeginInfo,
+                                                                    VkCommandBufferBeginInfo',
+                                                                    VkCommandBufferInheritanceInfo,
+                                                                    VkCommandBufferInheritanceInfo')
+import Graphics.Vulkan.Types.Struct.ComponentMapping
+import Graphics.Vulkan.Types.Struct.Descriptor
+import Graphics.Vulkan.Types.Struct.Device
+import Graphics.Vulkan.Types.Struct.Export                         (VkExportFenceCreateInfo,
+                                                                    VkExportFenceCreateInfo',
+                                                                    VkExportMemoryAllocateInfo,
+                                                                    VkExportMemoryAllocateInfo',
+                                                                    VkExportSemaphoreCreateInfo,
+                                                                    VkExportSemaphoreCreateInfo')
+import Graphics.Vulkan.Types.Struct.Extent
+import Graphics.Vulkan.Types.Struct.External
+import Graphics.Vulkan.Types.Struct.Fence                          (VkFenceCreateInfo,
+                                                                    VkFenceCreateInfo')
+import Graphics.Vulkan.Types.Struct.FormatProperties
+import Graphics.Vulkan.Types.Struct.Image
+import Graphics.Vulkan.Types.Struct.InputAttachmentAspectReference (VkInputAttachmentAspectReference,
+                                                                    VkInputAttachmentAspectReference')
+import Graphics.Vulkan.Types.Struct.Memory
+import Graphics.Vulkan.Types.Struct.Offset                         (VkOffset2D,
+                                                                    VkOffset2D',
+                                                                    VkOffset3D,
+                                                                    VkOffset3D')
+import Graphics.Vulkan.Types.Struct.PhysicalDevice
+import Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures
+import Graphics.Vulkan.Types.Struct.Pipeline                       (VkPipelineTessellationDomainOriginStateCreateInfo,
+                                                                    VkPipelineTessellationDomainOriginStateCreateInfo',
+                                                                    VkPipelineTessellationStateCreateInfo,
+                                                                    VkPipelineTessellationStateCreateInfo')
+import Graphics.Vulkan.Types.Struct.ProtectedSubmitInfo            (VkProtectedSubmitInfo,
+                                                                    VkProtectedSubmitInfo')
+import Graphics.Vulkan.Types.Struct.QueueFamilyProperties
+import Graphics.Vulkan.Types.Struct.Rect                           (VkRect2D,
+                                                                    VkRect2D')
+import Graphics.Vulkan.Types.Struct.RenderPass                     (VkRenderPassBeginInfo,
+                                                                    VkRenderPassBeginInfo',
+                                                                    VkRenderPassCreateInfo,
+                                                                    VkRenderPassCreateInfo',
+                                                                    VkRenderPassInputAttachmentAspectCreateInfo,
+                                                                    VkRenderPassInputAttachmentAspectCreateInfo',
+                                                                    VkRenderPassMultiviewCreateInfo,
+                                                                    VkRenderPassMultiviewCreateInfo')
+import Graphics.Vulkan.Types.Struct.Sampler
+import Graphics.Vulkan.Types.Struct.Semaphore                      (VkSemaphoreCreateInfo,
+                                                                    VkSemaphoreCreateInfo')
+import Graphics.Vulkan.Types.Struct.Sparse
+import Graphics.Vulkan.Types.Struct.SubmitInfo                     (VkSubmitInfo,
+                                                                    VkSubmitInfo')
+import Graphics.Vulkan.Types.Struct.Subpass                        (VkSubpassDependency,
+                                                                    VkSubpassDependency',
+                                                                    VkSubpassDescription,
+                                                                    VkSubpassDescription')
+import System.IO.Unsafe                                            (unsafeDupablePerformIO)
 
 pattern VkEnumerateInstanceVersion :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_buffer_marker.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_buffer_marker.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_buffer_marker.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_buffer_marker.hs
@@ -34,12 +34,12 @@
         VK_AMD_BUFFER_MARKER_EXTENSION_NAME,
         pattern VK_AMD_BUFFER_MARKER_EXTENSION_NAME)
        where
-import           GHC.Ptr                             (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc        (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.Pipeline
-import           Graphics.Vulkan.Types.Handles
+import GHC.Ptr                             (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc        (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.Pipeline
+import Graphics.Vulkan.Types.Handles
 
 pattern VkCmdWriteBufferMarkerAMD :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_draw_indirect_count.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_draw_indirect_count.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_draw_indirect_count.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_draw_indirect_count.hs
@@ -36,11 +36,11 @@
         VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME,
         pattern VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME)
        where
-import           GHC.Ptr                         (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc    (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Handles
+import GHC.Ptr                         (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc    (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Handles
 
 pattern VkCmdDrawIndirectCountAMD :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_gcn_shader.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_gcn_shader.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_gcn_shader.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_gcn_shader.hs
@@ -22,8 +22,8 @@
         VK_AMD_GCN_SHADER_EXTENSION_NAME,
         pattern VK_AMD_GCN_SHADER_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_AMD_GCN_SHADER_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_gpu_shader_half_float.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_gpu_shader_half_float.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_gpu_shader_half_float.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_gpu_shader_half_float.hs
@@ -22,8 +22,8 @@
         VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME,
         pattern VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_gpu_shader_int16.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_gpu_shader_int16.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_gpu_shader_int16.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_gpu_shader_int16.hs
@@ -22,8 +22,8 @@
         VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME,
         pattern VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_AMD_GPU_SHADER_INT16_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_mixed_attachment_samples.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_mixed_attachment_samples.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_mixed_attachment_samples.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_mixed_attachment_samples.hs
@@ -22,8 +22,8 @@
         VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME,
         pattern VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_negative_viewport_height.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_negative_viewport_height.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_negative_viewport_height.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_negative_viewport_height.hs
@@ -22,8 +22,8 @@
         VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME,
         pattern VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_rasterization_order.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_rasterization_order.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_rasterization_order.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_rasterization_order.hs
@@ -21,7 +21,10 @@
         module Graphics.Vulkan.Types.Enum.CullModeFlags,
         module Graphics.Vulkan.Types.Enum.FrontFace,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.Pipeline,
+        VkPipelineRasterizationStateCreateInfo,
+        VkPipelineRasterizationStateCreateInfo',
+        VkPipelineRasterizationStateRasterizationOrderAMD,
+        VkPipelineRasterizationStateRasterizationOrderAMD',
         module Graphics.Vulkan.Types.Enum.PolygonMode,
         module Graphics.Vulkan.Types.Enum.RasterizationOrderAMD,
         module Graphics.Vulkan.Types.Enum.StructureType,
@@ -32,16 +35,19 @@
         pattern VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD)
        where
-import           GHC.Ptr                                          (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.CullModeFlags
-import           Graphics.Vulkan.Types.Enum.FrontFace
-import           Graphics.Vulkan.Types.Enum.PolygonMode
-import           Graphics.Vulkan.Types.Enum.RasterizationOrderAMD
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Struct.Pipeline
+import GHC.Ptr                                          (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.CullModeFlags
+import Graphics.Vulkan.Types.Enum.FrontFace
+import Graphics.Vulkan.Types.Enum.PolygonMode
+import Graphics.Vulkan.Types.Enum.RasterizationOrderAMD
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Struct.Pipeline            (VkPipelineRasterizationStateCreateInfo,
+                                                         VkPipelineRasterizationStateCreateInfo',
+                                                         VkPipelineRasterizationStateRasterizationOrderAMD,
+                                                         VkPipelineRasterizationStateRasterizationOrderAMD')
 
 pattern VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION :: (Num a, Eq a) =>
         a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_ballot.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_ballot.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_ballot.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_ballot.hs
@@ -22,8 +22,8 @@
         VK_AMD_SHADER_BALLOT_EXTENSION_NAME,
         pattern VK_AMD_SHADER_BALLOT_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_AMD_SHADER_BALLOT_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_core_properties.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_core_properties.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_core_properties.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_core_properties.hs
@@ -23,8 +23,14 @@
 
         -- ** Required extensions: 'VK_KHR_get_physical_device_properties2'.
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.BaseTypes, VkPhysicalDeviceLimits,
+        VkPhysicalDeviceLimits', VkPhysicalDeviceProperties,
+        VkPhysicalDeviceProperties', VkPhysicalDeviceProperties2,
+        VkPhysicalDeviceProperties2',
+        VkPhysicalDeviceShaderCorePropertiesAMD,
+        VkPhysicalDeviceShaderCorePropertiesAMD',
+        VkPhysicalDeviceSparseProperties,
+        VkPhysicalDeviceSparseProperties',
         module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
         module Graphics.Vulkan.Types.Enum.StructureType,
@@ -35,13 +41,22 @@
         pattern VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD)
        where
-import           GHC.Ptr                                       (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import GHC.Ptr                                       (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Struct.PhysicalDevice   (VkPhysicalDeviceLimits,
+                                                      VkPhysicalDeviceLimits',
+                                                      VkPhysicalDeviceProperties,
+                                                      VkPhysicalDeviceProperties',
+                                                      VkPhysicalDeviceProperties2,
+                                                      VkPhysicalDeviceProperties2',
+                                                      VkPhysicalDeviceShaderCorePropertiesAMD,
+                                                      VkPhysicalDeviceShaderCorePropertiesAMD',
+                                                      VkPhysicalDeviceSparseProperties,
+                                                      VkPhysicalDeviceSparseProperties')
 
 pattern VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_explicit_vertex_parameter.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_explicit_vertex_parameter.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_explicit_vertex_parameter.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_explicit_vertex_parameter.hs
@@ -22,8 +22,8 @@
         VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME,
         pattern VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_fragment_mask.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_fragment_mask.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_fragment_mask.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_fragment_mask.hs
@@ -22,8 +22,8 @@
         VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME,
         pattern VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_image_load_store_lod.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_image_load_store_lod.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_image_load_store_lod.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_image_load_store_lod.hs
@@ -22,8 +22,8 @@
         VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME,
         pattern VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_info.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_info.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_info.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_info.hs
@@ -25,9 +25,10 @@
         -- Extension number: @43@
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.Shader,
-        module Graphics.Vulkan.Types.Struct.Shader, -- > #include "vk_platform.h"
-                                                    VkGetShaderInfoAMD,
+        module Graphics.Vulkan.Types.Enum.Shader, VkShaderResourceUsageAMD,
+        VkShaderResourceUsageAMD', VkShaderStatisticsInfoAMD,
+        VkShaderStatisticsInfoAMD', -- > #include "vk_platform.h"
+                                    VkGetShaderInfoAMD,
         pattern VkGetShaderInfoAMD, HS_vkGetShaderInfoAMD,
         PFN_vkGetShaderInfoAMD, module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
@@ -36,14 +37,17 @@
         VK_AMD_SHADER_INFO_EXTENSION_NAME,
         pattern VK_AMD_SHADER_INFO_EXTENSION_NAME)
        where
-import           GHC.Ptr                             (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc        (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.Shader
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.Shader
+import GHC.Ptr                             (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc        (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.Shader
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.Shader (VkShaderResourceUsageAMD,
+                                            VkShaderResourceUsageAMD',
+                                            VkShaderStatisticsInfoAMD,
+                                            VkShaderStatisticsInfoAMD')
 
 pattern VkGetShaderInfoAMD :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_trinary_minmax.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_trinary_minmax.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_trinary_minmax.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_trinary_minmax.hs
@@ -22,8 +22,8 @@
         VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME,
         pattern VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_texture_gather_bias_lod.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_texture_gather_bias_lod.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_texture_gather_bias_lod.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_texture_gather_bias_lod.hs
@@ -22,12 +22,13 @@
         --
 
         -- ** Required extensions: 'VK_KHR_get_physical_device_properties2'.
-        module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.Extent,
-        module Graphics.Vulkan.Types.Struct.Image,
+        module Graphics.Vulkan.Types.BaseTypes, VkExtent3D, VkExtent3D',
+        VkImageFormatProperties, VkImageFormatProperties',
+        VkImageFormatProperties2, VkImageFormatProperties2',
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
         module Graphics.Vulkan.Types.Enum.StructureType,
-        module Graphics.Vulkan.Types.Struct.TextureLODGatherFormatPropertiesAMD,
+        VkTextureLODGatherFormatPropertiesAMD,
+        VkTextureLODGatherFormatPropertiesAMD',
         -- > #include "vk_platform.h"
         VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION,
         pattern VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION,
@@ -35,15 +36,19 @@
         pattern VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD)
        where
-import           GHC.Ptr
-                                                                                   (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.Image
-import           Graphics.Vulkan.Types.Struct.TextureLODGatherFormatPropertiesAMD
+import GHC.Ptr                                                          (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Struct.Extent                              (VkExtent3D,
+                                                                         VkExtent3D')
+import Graphics.Vulkan.Types.Struct.Image                               (VkImageFormatProperties,
+                                                                         VkImageFormatProperties',
+                                                                         VkImageFormatProperties2,
+                                                                         VkImageFormatProperties2')
+import Graphics.Vulkan.Types.Struct.TextureLODGatherFormatPropertiesAMD (VkTextureLODGatherFormatPropertiesAMD,
+                                                                         VkTextureLODGatherFormatPropertiesAMD')
 
 pattern VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_ANDROID_external_memory_android_hardware_buffer.hs b/src-gen/Graphics/Vulkan/Ext/VK_ANDROID_external_memory_android_hardware_buffer.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_ANDROID_external_memory_android_hardware_buffer.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_ANDROID_external_memory_android_hardware_buffer.hs
@@ -29,19 +29,30 @@
         --
 
         -- ** Required extensions: 'VK_KHR_sampler_ycbcr_conversion', 'VK_KHR_external_memory', 'VK_EXT_queue_family_foreign'.
-        module Graphics.Vulkan.Types.Struct.PlatformAndroidKhr,
+        VkAndroidHardwareBufferFormatPropertiesANDROID,
+        VkAndroidHardwareBufferFormatPropertiesANDROID',
+        VkAndroidHardwareBufferPropertiesANDROID,
+        VkAndroidHardwareBufferPropertiesANDROID',
+        VkAndroidHardwareBufferUsageANDROID,
+        VkAndroidHardwareBufferUsageANDROID',
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.ChromaLocation,
-        module Graphics.Vulkan.Types.Struct.ComponentMapping,
-        module Graphics.Vulkan.Types.Enum.ComponentSwizzle,
-        module Graphics.Vulkan.Types.Struct.Extent,
+        VkComponentMapping, VkComponentMapping',
+        module Graphics.Vulkan.Types.Enum.ComponentSwizzle, VkExtent3D,
+        VkExtent3D', VkExternalFormatANDROID, VkExternalFormatANDROID',
         module Graphics.Vulkan.Types.Enum.Filter,
         module Graphics.Vulkan.Types.Enum.Format,
-        module Graphics.Vulkan.Types.Enum.Image,
-        module Graphics.Vulkan.Types.Struct.Image,
-        module Graphics.Vulkan.Types.Struct.Memory,
+        module Graphics.Vulkan.Types.Enum.Image, VkImageCreateInfo,
+        VkImageCreateInfo', VkImageFormatProperties,
+        VkImageFormatProperties', VkImageFormatProperties2,
+        VkImageFormatProperties2',
+        VkImportAndroidHardwareBufferInfoANDROID,
+        VkImportAndroidHardwareBufferInfoANDROID', VkMemoryAllocateInfo,
+        VkMemoryAllocateInfo', VkMemoryGetAndroidHardwareBufferInfoANDROID,
+        VkMemoryGetAndroidHardwareBufferInfoANDROID',
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
-        module Graphics.Vulkan.Types.Struct.Sampler,
+        VkSamplerYcbcrConversionCreateInfo,
+        VkSamplerYcbcrConversionCreateInfo',
         module Graphics.Vulkan.Types.Enum.Sampler,
         module Graphics.Vulkan.Types.Enum.SharingMode,
         module Graphics.Vulkan.Types.Enum.StructureType,
@@ -57,6 +68,7 @@
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
+        module Graphics.Vulkan.Types.Struct.PlatformAndroidKhr,
         VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION,
         pattern VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION,
         VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME,
@@ -69,30 +81,38 @@
         pattern VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
         pattern VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID)
        where
-import           GHC.Ptr                                         (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                    (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Defines                   (AHardwareBuffer)
-import           Graphics.Vulkan.Types.Enum.ChromaLocation
-import           Graphics.Vulkan.Types.Enum.ComponentSwizzle
-import           Graphics.Vulkan.Types.Enum.External             (VkExternalMemoryHandleTypeBitmask (..),
-                                                                  VkExternalMemoryHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.Filter
-import           Graphics.Vulkan.Types.Enum.Format
-import           Graphics.Vulkan.Types.Enum.Image
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.Sampler
-import           Graphics.Vulkan.Types.Enum.SharingMode
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.ComponentMapping
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.Image
-import           Graphics.Vulkan.Types.Struct.Memory
-import           Graphics.Vulkan.Types.Struct.PlatformAndroidKhr
-import           Graphics.Vulkan.Types.Struct.Sampler
+import GHC.Ptr                                         (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                    (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Defines                   (AHardwareBuffer)
+import Graphics.Vulkan.Types.Enum.ChromaLocation
+import Graphics.Vulkan.Types.Enum.ComponentSwizzle
+import Graphics.Vulkan.Types.Enum.External             (VkExternalMemoryHandleTypeBitmask (..),
+                                                        VkExternalMemoryHandleTypeFlagBits)
+import Graphics.Vulkan.Types.Enum.Filter
+import Graphics.Vulkan.Types.Enum.Format
+import Graphics.Vulkan.Types.Enum.Image
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.Sampler
+import Graphics.Vulkan.Types.Enum.SharingMode
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.ComponentMapping   (VkComponentMapping,
+                                                        VkComponentMapping')
+import Graphics.Vulkan.Types.Struct.Extent             (VkExtent3D, VkExtent3D')
+import Graphics.Vulkan.Types.Struct.Image              (VkImageCreateInfo,
+                                                        VkImageCreateInfo',
+                                                        VkImageFormatProperties,
+                                                        VkImageFormatProperties',
+                                                        VkImageFormatProperties2,
+                                                        VkImageFormatProperties2')
+import Graphics.Vulkan.Types.Struct.Memory             (VkMemoryAllocateInfo,
+                                                        VkMemoryAllocateInfo')
+import Graphics.Vulkan.Types.Struct.PlatformAndroidKhr
+import Graphics.Vulkan.Types.Struct.Sampler            (VkSamplerYcbcrConversionCreateInfo,
+                                                        VkSamplerYcbcrConversionCreateInfo')
 
 pattern VkGetAndroidHardwareBufferPropertiesANDROID :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_acquire_xlib_display.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_acquire_xlib_display.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_acquire_xlib_display.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_acquire_xlib_display.hs
@@ -40,12 +40,12 @@
         VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME,
         pattern VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME)
        where
-import           GHC.Ptr                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc      (VulkanProc (..))
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Include     (Display, RROutput)
+import GHC.Ptr                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc      (VulkanProc (..))
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Include     (Display, RROutput)
 
 pattern VkAcquireXlibDisplayEXT :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_blend_operation_advanced.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_blend_operation_advanced.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_blend_operation_advanced.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_blend_operation_advanced.hs
@@ -21,14 +21,28 @@
         module Graphics.Vulkan.Types.Enum.Blend,
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.Color,
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.Device,
-        module Graphics.Vulkan.Types.Enum.Device,
+        module Graphics.Vulkan.Types.Bitmasks, VkDeviceCreateInfo,
+        VkDeviceCreateInfo', module Graphics.Vulkan.Types.Enum.Device,
+        VkDeviceQueueCreateInfo, VkDeviceQueueCreateInfo',
         module Graphics.Vulkan.Types.Enum.LogicOp,
-        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
-        module Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures,
+        VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT,
+        VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT',
+        VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT,
+        VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT',
+        VkPhysicalDeviceFeatures, VkPhysicalDeviceFeatures',
+        VkPhysicalDeviceFeatures2, VkPhysicalDeviceFeatures2',
+        VkPhysicalDeviceLimits, VkPhysicalDeviceLimits',
+        VkPhysicalDeviceProperties, VkPhysicalDeviceProperties',
+        VkPhysicalDeviceProperties2, VkPhysicalDeviceProperties2',
+        VkPhysicalDeviceSparseProperties,
+        VkPhysicalDeviceSparseProperties',
         module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
-        module Graphics.Vulkan.Types.Struct.Pipeline,
+        VkPipelineColorBlendAdvancedStateCreateInfoEXT,
+        VkPipelineColorBlendAdvancedStateCreateInfoEXT',
+        VkPipelineColorBlendAttachmentState,
+        VkPipelineColorBlendAttachmentState',
+        VkPipelineColorBlendStateCreateInfo,
+        VkPipelineColorBlendStateCreateInfo',
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
         module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
@@ -73,23 +87,45 @@
         pattern VK_BLEND_OP_GREEN_EXT, pattern VK_BLEND_OP_BLUE_EXT,
         pattern VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT)
        where
-import           GHC.Ptr                                             (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.AccessFlags              (VkAccessBitmask (..),
-                                                                      VkAccessFlagBits)
-import           Graphics.Vulkan.Types.Enum.Blend
-import           Graphics.Vulkan.Types.Enum.Color
-import           Graphics.Vulkan.Types.Enum.Device
-import           Graphics.Vulkan.Types.Enum.LogicOp
-import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Struct.Device
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
-import           Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures
-import           Graphics.Vulkan.Types.Struct.Pipeline
+import GHC.Ptr                                             (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.AccessFlags              (VkAccessBitmask (..),
+                                                            VkAccessFlagBits)
+import Graphics.Vulkan.Types.Enum.Blend
+import Graphics.Vulkan.Types.Enum.Color
+import Graphics.Vulkan.Types.Enum.Device
+import Graphics.Vulkan.Types.Enum.LogicOp
+import Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Struct.Device                 (VkDeviceCreateInfo,
+                                                            VkDeviceCreateInfo',
+                                                            VkDeviceQueueCreateInfo,
+                                                            VkDeviceQueueCreateInfo')
+import Graphics.Vulkan.Types.Struct.PhysicalDevice         (VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT,
+                                                            VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT',
+                                                            VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT,
+                                                            VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT',
+                                                            VkPhysicalDeviceFeatures2,
+                                                            VkPhysicalDeviceFeatures2',
+                                                            VkPhysicalDeviceLimits,
+                                                            VkPhysicalDeviceLimits',
+                                                            VkPhysicalDeviceProperties,
+                                                            VkPhysicalDeviceProperties',
+                                                            VkPhysicalDeviceProperties2,
+                                                            VkPhysicalDeviceProperties2',
+                                                            VkPhysicalDeviceSparseProperties,
+                                                            VkPhysicalDeviceSparseProperties')
+import Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures (VkPhysicalDeviceFeatures,
+                                                            VkPhysicalDeviceFeatures')
+import Graphics.Vulkan.Types.Struct.Pipeline               (VkPipelineColorBlendAdvancedStateCreateInfoEXT,
+                                                            VkPipelineColorBlendAdvancedStateCreateInfoEXT',
+                                                            VkPipelineColorBlendAttachmentState,
+                                                            VkPipelineColorBlendAttachmentState',
+                                                            VkPipelineColorBlendStateCreateInfo,
+                                                            VkPipelineColorBlendStateCreateInfo')
 
 pattern VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_conservative_rasterization.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_conservative_rasterization.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_conservative_rasterization.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_conservative_rasterization.hs
@@ -27,10 +27,19 @@
         module Graphics.Vulkan.Types.Enum.ConservativeRasterizationModeEXT,
         module Graphics.Vulkan.Types.Enum.CullModeFlags,
         module Graphics.Vulkan.Types.Enum.FrontFace,
-        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        VkPhysicalDeviceConservativeRasterizationPropertiesEXT,
+        VkPhysicalDeviceConservativeRasterizationPropertiesEXT',
+        VkPhysicalDeviceLimits, VkPhysicalDeviceLimits',
+        VkPhysicalDeviceProperties, VkPhysicalDeviceProperties',
+        VkPhysicalDeviceProperties2, VkPhysicalDeviceProperties2',
+        VkPhysicalDeviceSparseProperties,
+        VkPhysicalDeviceSparseProperties',
         module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.Pipeline,
+        VkPipelineRasterizationConservativeStateCreateInfoEXT,
+        VkPipelineRasterizationConservativeStateCreateInfoEXT',
+        VkPipelineRasterizationStateCreateInfo,
+        VkPipelineRasterizationStateCreateInfo',
         module Graphics.Vulkan.Types.Enum.PolygonMode,
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
         module Graphics.Vulkan.Types.Enum.StructureType,
@@ -42,19 +51,31 @@
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT,
         pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT)
        where
-import           GHC.Ptr                                                     (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.ConservativeRasterizationModeEXT
-import           Graphics.Vulkan.Types.Enum.CullModeFlags
-import           Graphics.Vulkan.Types.Enum.FrontFace
-import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.PolygonMode
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
-import           Graphics.Vulkan.Types.Struct.Pipeline
+import GHC.Ptr                                                     (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.ConservativeRasterizationModeEXT
+import Graphics.Vulkan.Types.Enum.CullModeFlags
+import Graphics.Vulkan.Types.Enum.FrontFace
+import Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import Graphics.Vulkan.Types.Enum.PolygonMode
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Struct.PhysicalDevice                 (VkPhysicalDeviceConservativeRasterizationPropertiesEXT,
+                                                                    VkPhysicalDeviceConservativeRasterizationPropertiesEXT',
+                                                                    VkPhysicalDeviceLimits,
+                                                                    VkPhysicalDeviceLimits',
+                                                                    VkPhysicalDeviceProperties,
+                                                                    VkPhysicalDeviceProperties',
+                                                                    VkPhysicalDeviceProperties2,
+                                                                    VkPhysicalDeviceProperties2',
+                                                                    VkPhysicalDeviceSparseProperties,
+                                                                    VkPhysicalDeviceSparseProperties')
+import Graphics.Vulkan.Types.Struct.Pipeline                       (VkPipelineRasterizationConservativeStateCreateInfoEXT,
+                                                                    VkPipelineRasterizationConservativeStateCreateInfoEXT',
+                                                                    VkPipelineRasterizationStateCreateInfo,
+                                                                    VkPipelineRasterizationStateCreateInfo')
 
 pattern VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_marker.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_marker.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_marker.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_marker.hs
@@ -27,8 +27,10 @@
         --
 
         -- ** Required extensions: 'VK_EXT_debug_report'.
-        module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Struct.Debug,
+        module Graphics.Vulkan.Marshal, VkDebugMarkerMarkerInfoEXT,
+        VkDebugMarkerMarkerInfoEXT', VkDebugMarkerObjectNameInfoEXT,
+        VkDebugMarkerObjectNameInfoEXT', VkDebugMarkerObjectTagInfoEXT,
+        VkDebugMarkerObjectTagInfoEXT',
         module Graphics.Vulkan.Types.Enum.Debug,
         module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
@@ -46,6 +48,7 @@
         PFN_vkCmdDebugMarkerInsertEXT,
         module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
+        module Graphics.Vulkan.Types.Struct.Debug,
         VK_EXT_DEBUG_MARKER_SPEC_VERSION,
         pattern VK_EXT_DEBUG_MARKER_SPEC_VERSION,
         VK_EXT_DEBUG_MARKER_EXTENSION_NAME,
@@ -54,14 +57,14 @@
         pattern VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT,
         pattern VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT)
        where
-import           GHC.Ptr                                  (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc             (VulkanProc (..))
-import           Graphics.Vulkan.Types.Enum.Debug
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.Debug
+import GHC.Ptr                                  (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc             (VulkanProc (..))
+import Graphics.Vulkan.Types.Enum.Debug
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.Debug
 
 pattern VkDebugMarkerSetObjectTagEXT :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_report.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_report.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_report.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_report.hs
@@ -24,13 +24,13 @@
         -- type: @instance@
         --
         -- Extension number: @12@
-        module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Struct.ApplicationInfo,
-        module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.Debug,
+        module Graphics.Vulkan.Marshal, VkApplicationInfo,
+        VkApplicationInfo', module Graphics.Vulkan.Types.BaseTypes,
+        VkDebugReportCallbackCreateInfoEXT,
+        VkDebugReportCallbackCreateInfoEXT',
         module Graphics.Vulkan.Types.Enum.Debug,
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.InstanceCreateInfo,
+        module Graphics.Vulkan.Types.Bitmasks, VkInstanceCreateInfo,
+        VkInstanceCreateInfo',
         module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VkCreateDebugReportCallbackEXT,
@@ -49,6 +49,9 @@
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.ApplicationInfo,
+        module Graphics.Vulkan.Types.Struct.Debug,
+        module Graphics.Vulkan.Types.Struct.InstanceCreateInfo,
         VK_EXT_DEBUG_REPORT_SPEC_VERSION,
         pattern VK_EXT_DEBUG_REPORT_SPEC_VERSION,
         VK_EXT_DEBUG_REPORT_EXTENSION_NAME,
@@ -61,23 +64,23 @@
         pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
         pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT)
        where
-import           GHC.Ptr                                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.Debug
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.Object                 (VkObjectType (..))
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.ApplicationInfo
-import           Graphics.Vulkan.Types.Struct.Debug
-import           Graphics.Vulkan.Types.Struct.InstanceCreateInfo
+import GHC.Ptr                                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.Debug
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.Object                 (VkObjectType (..))
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.ApplicationInfo
+import Graphics.Vulkan.Types.Struct.Debug
+import Graphics.Vulkan.Types.Struct.InstanceCreateInfo
 
 pattern VkCreateDebugReportCallbackEXT :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_utils.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_utils.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_utils.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_utils.hs
@@ -23,18 +23,18 @@
         -- type: @instance@
         --
         -- Extension number: @129@
-        module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Struct.ApplicationInfo,
-        module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.DebugUtilsLabelEXT,
+        module Graphics.Vulkan.Marshal, VkApplicationInfo,
+        VkApplicationInfo', module Graphics.Vulkan.Types.BaseTypes,
+        VkDebugUtilsLabelEXT, VkDebugUtilsLabelEXT',
         module Graphics.Vulkan.Types.Enum.Debug,
-        module Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCallbackDataEXT,
+        VkDebugUtilsMessengerCallbackDataEXT,
+        VkDebugUtilsMessengerCallbackDataEXT',
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCreateInfoEXT,
-        module Graphics.Vulkan.Types.Struct.DebugUtilsObjectNameInfoEXT,
-        module Graphics.Vulkan.Types.Struct.Debug,
-        module Graphics.Vulkan.Types.Struct.InstanceCreateInfo,
-        module Graphics.Vulkan.Types.Enum.Object,
+        VkDebugUtilsMessengerCreateInfoEXT,
+        VkDebugUtilsMessengerCreateInfoEXT', VkDebugUtilsObjectNameInfoEXT,
+        VkDebugUtilsObjectNameInfoEXT', VkDebugUtilsObjectTagInfoEXT,
+        VkDebugUtilsObjectTagInfoEXT', VkInstanceCreateInfo,
+        VkInstanceCreateInfo', module Graphics.Vulkan.Types.Enum.Object,
         module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VkSetDebugUtilsObjectNameEXT, pattern VkSetDebugUtilsObjectNameEXT,
@@ -74,6 +74,13 @@
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.ApplicationInfo,
+        module Graphics.Vulkan.Types.Struct.Debug,
+        module Graphics.Vulkan.Types.Struct.DebugUtilsLabelEXT,
+        module Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCallbackDataEXT,
+        module Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCreateInfoEXT,
+        module Graphics.Vulkan.Types.Struct.DebugUtilsObjectNameInfoEXT,
+        module Graphics.Vulkan.Types.Struct.InstanceCreateInfo,
         VK_EXT_DEBUG_UTILS_SPEC_VERSION,
         pattern VK_EXT_DEBUG_UTILS_SPEC_VERSION,
         VK_EXT_DEBUG_UTILS_EXTENSION_NAME,
@@ -85,27 +92,27 @@
         pattern VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
         pattern VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT)
        where
-import           GHC.Ptr                                                         (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                                    (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.Debug
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.Object
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.ApplicationInfo
-import           Graphics.Vulkan.Types.Struct.Debug
-import           Graphics.Vulkan.Types.Struct.DebugUtilsLabelEXT
-import           Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCallbackDataEXT
-import           Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCreateInfoEXT
-import           Graphics.Vulkan.Types.Struct.DebugUtilsObjectNameInfoEXT
-import           Graphics.Vulkan.Types.Struct.InstanceCreateInfo
+import GHC.Ptr                                                         (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                                    (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.Debug
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.Object
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.ApplicationInfo
+import Graphics.Vulkan.Types.Struct.Debug
+import Graphics.Vulkan.Types.Struct.DebugUtilsLabelEXT
+import Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCallbackDataEXT
+import Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCreateInfoEXT
+import Graphics.Vulkan.Types.Struct.DebugUtilsObjectNameInfoEXT
+import Graphics.Vulkan.Types.Struct.InstanceCreateInfo
 
 pattern VkSetDebugUtilsObjectNameEXT :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_depth_range_unrestricted.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_depth_range_unrestricted.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_depth_range_unrestricted.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_depth_range_unrestricted.hs
@@ -22,8 +22,8 @@
         VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME,
         pattern VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_descriptor_indexing.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_descriptor_indexing.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_descriptor_indexing.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_descriptor_indexing.hs
@@ -25,12 +25,30 @@
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.Descriptor,
-        module Graphics.Vulkan.Types.Struct.Descriptor,
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.Device,
-        module Graphics.Vulkan.Types.Enum.Device,
-        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
-        module Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures,
+        VkDescriptorSetAllocateInfo, VkDescriptorSetAllocateInfo',
+        VkDescriptorSetLayoutBinding, VkDescriptorSetLayoutBinding',
+        VkDescriptorSetLayoutBindingFlagsCreateInfoEXT,
+        VkDescriptorSetLayoutBindingFlagsCreateInfoEXT',
+        VkDescriptorSetLayoutCreateInfo, VkDescriptorSetLayoutCreateInfo',
+        VkDescriptorSetLayoutSupport, VkDescriptorSetLayoutSupport',
+        VkDescriptorSetVariableDescriptorCountAllocateInfoEXT,
+        VkDescriptorSetVariableDescriptorCountAllocateInfoEXT',
+        VkDescriptorSetVariableDescriptorCountLayoutSupportEXT,
+        VkDescriptorSetVariableDescriptorCountLayoutSupportEXT',
+        module Graphics.Vulkan.Types.Bitmasks, VkDeviceCreateInfo,
+        VkDeviceCreateInfo', module Graphics.Vulkan.Types.Enum.Device,
+        VkDeviceQueueCreateInfo, VkDeviceQueueCreateInfo',
+        VkPhysicalDeviceDescriptorIndexingFeaturesEXT,
+        VkPhysicalDeviceDescriptorIndexingFeaturesEXT',
+        VkPhysicalDeviceDescriptorIndexingPropertiesEXT,
+        VkPhysicalDeviceDescriptorIndexingPropertiesEXT',
+        VkPhysicalDeviceFeatures, VkPhysicalDeviceFeatures',
+        VkPhysicalDeviceFeatures2, VkPhysicalDeviceFeatures2',
+        VkPhysicalDeviceLimits, VkPhysicalDeviceLimits',
+        VkPhysicalDeviceProperties, VkPhysicalDeviceProperties',
+        VkPhysicalDeviceProperties2, VkPhysicalDeviceProperties2',
+        VkPhysicalDeviceSparseProperties,
+        VkPhysicalDeviceSparseProperties',
         module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
         module Graphics.Vulkan.Types.Enum.Shader,
@@ -49,21 +67,51 @@
         pattern VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT,
         pattern VK_ERROR_FRAGMENTATION_EXT)
        where
-import           GHC.Ptr                                             (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.Descriptor
-import           Graphics.Vulkan.Types.Enum.Device
-import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.Result                   (VkResult (..))
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.Shader
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Struct.Descriptor
-import           Graphics.Vulkan.Types.Struct.Device
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
-import           Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures
+import GHC.Ptr                                             (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.Descriptor
+import Graphics.Vulkan.Types.Enum.Device
+import Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import Graphics.Vulkan.Types.Enum.Result                   (VkResult (..))
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.Shader
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Struct.Descriptor             (VkDescriptorSetAllocateInfo,
+                                                            VkDescriptorSetAllocateInfo',
+                                                            VkDescriptorSetLayoutBinding,
+                                                            VkDescriptorSetLayoutBinding',
+                                                            VkDescriptorSetLayoutBindingFlagsCreateInfoEXT,
+                                                            VkDescriptorSetLayoutBindingFlagsCreateInfoEXT',
+                                                            VkDescriptorSetLayoutCreateInfo,
+                                                            VkDescriptorSetLayoutCreateInfo',
+                                                            VkDescriptorSetLayoutSupport,
+                                                            VkDescriptorSetLayoutSupport',
+                                                            VkDescriptorSetVariableDescriptorCountAllocateInfoEXT,
+                                                            VkDescriptorSetVariableDescriptorCountAllocateInfoEXT',
+                                                            VkDescriptorSetVariableDescriptorCountLayoutSupportEXT,
+                                                            VkDescriptorSetVariableDescriptorCountLayoutSupportEXT')
+import Graphics.Vulkan.Types.Struct.Device                 (VkDeviceCreateInfo,
+                                                            VkDeviceCreateInfo',
+                                                            VkDeviceQueueCreateInfo,
+                                                            VkDeviceQueueCreateInfo')
+import Graphics.Vulkan.Types.Struct.PhysicalDevice         (VkPhysicalDeviceDescriptorIndexingFeaturesEXT,
+                                                            VkPhysicalDeviceDescriptorIndexingFeaturesEXT',
+                                                            VkPhysicalDeviceDescriptorIndexingPropertiesEXT,
+                                                            VkPhysicalDeviceDescriptorIndexingPropertiesEXT',
+                                                            VkPhysicalDeviceFeatures2,
+                                                            VkPhysicalDeviceFeatures2',
+                                                            VkPhysicalDeviceLimits,
+                                                            VkPhysicalDeviceLimits',
+                                                            VkPhysicalDeviceProperties,
+                                                            VkPhysicalDeviceProperties',
+                                                            VkPhysicalDeviceProperties2,
+                                                            VkPhysicalDeviceProperties2',
+                                                            VkPhysicalDeviceSparseProperties,
+                                                            VkPhysicalDeviceSparseProperties')
+import Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures (VkPhysicalDeviceFeatures,
+                                                            VkPhysicalDeviceFeatures')
 
 pattern VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION :: (Num a, Eq a) =>
         a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_direct_mode_display.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_direct_mode_display.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_direct_mode_display.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_direct_mode_display.hs
@@ -36,11 +36,11 @@
         VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME,
         pattern VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME)
        where
-import           GHC.Ptr                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc      (VulkanProc (..))
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Handles
+import GHC.Ptr                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc      (VulkanProc (..))
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Handles
 
 pattern VkReleaseDisplayEXT :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_discard_rectangles.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_discard_rectangles.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_discard_rectangles.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_discard_rectangles.hs
@@ -34,33 +34,64 @@
         module Graphics.Vulkan.Types.Enum.CompareOp,
         module Graphics.Vulkan.Types.Enum.CullModeFlags,
         module Graphics.Vulkan.Types.Enum.DiscardRectangleModeEXT,
-        module Graphics.Vulkan.Types.Enum.DynamicState,
-        module Graphics.Vulkan.Types.Struct.Extent,
-        module Graphics.Vulkan.Types.Enum.Format,
+        module Graphics.Vulkan.Types.Enum.DynamicState, VkExtent2D,
+        VkExtent2D', module Graphics.Vulkan.Types.Enum.Format,
         module Graphics.Vulkan.Types.Enum.FrontFace,
-        module Graphics.Vulkan.Types.Struct.Pipeline,
-        module Graphics.Vulkan.Types.Enum.LogicOp,
-        module Graphics.Vulkan.Types.Struct.Offset,
-        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        VkGraphicsPipelineCreateInfo, VkGraphicsPipelineCreateInfo',
+        module Graphics.Vulkan.Types.Enum.LogicOp, VkOffset2D, VkOffset2D',
+        VkPhysicalDeviceDiscardRectanglePropertiesEXT,
+        VkPhysicalDeviceDiscardRectanglePropertiesEXT',
+        VkPhysicalDeviceLimits, VkPhysicalDeviceLimits',
+        VkPhysicalDeviceProperties, VkPhysicalDeviceProperties',
+        VkPhysicalDeviceProperties2, VkPhysicalDeviceProperties2',
+        VkPhysicalDeviceSparseProperties,
+        VkPhysicalDeviceSparseProperties',
         module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
+        VkPipelineColorBlendAttachmentState,
+        VkPipelineColorBlendAttachmentState',
         module Graphics.Vulkan.Types.Bitmasks,
+        VkPipelineColorBlendStateCreateInfo,
+        VkPipelineColorBlendStateCreateInfo',
         module Graphics.Vulkan.Types.Enum.Pipeline,
+        VkPipelineDepthStencilStateCreateInfo,
+        VkPipelineDepthStencilStateCreateInfo',
+        VkPipelineDiscardRectangleStateCreateInfoEXT,
+        VkPipelineDiscardRectangleStateCreateInfoEXT',
+        VkPipelineDynamicStateCreateInfo,
+        VkPipelineDynamicStateCreateInfo',
+        VkPipelineInputAssemblyStateCreateInfo,
+        VkPipelineInputAssemblyStateCreateInfo',
+        VkPipelineMultisampleStateCreateInfo,
+        VkPipelineMultisampleStateCreateInfo',
+        VkPipelineRasterizationStateCreateInfo,
+        VkPipelineRasterizationStateCreateInfo',
+        VkPipelineShaderStageCreateInfo, VkPipelineShaderStageCreateInfo',
+        VkPipelineTessellationStateCreateInfo,
+        VkPipelineTessellationStateCreateInfo',
+        VkPipelineVertexInputStateCreateInfo,
+        VkPipelineVertexInputStateCreateInfo',
+        VkPipelineViewportStateCreateInfo,
+        VkPipelineViewportStateCreateInfo',
         module Graphics.Vulkan.Types.Enum.PolygonMode,
-        module Graphics.Vulkan.Types.Enum.PrimitiveTopology,
-        module Graphics.Vulkan.Types.Struct.Rect,
-        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
-        module Graphics.Vulkan.Types.Enum.Shader,
-        module Graphics.Vulkan.Types.Struct.Specialization,
-        module Graphics.Vulkan.Types.Enum.Stencil,
-        module Graphics.Vulkan.Types.Struct.StencilOpState,
-        module Graphics.Vulkan.Types.Enum.StructureType,
-        module Graphics.Vulkan.Types.Struct.VertexInput,
-        module Graphics.Vulkan.Types.Enum.VertexInputRate,
-        module Graphics.Vulkan.Types.Struct.Viewport,
-        -- > #include "vk_platform.h"
-        VkCmdSetDiscardRectangleEXT, pattern VkCmdSetDiscardRectangleEXT,
+        module Graphics.Vulkan.Types.Enum.PrimitiveTopology, VkRect2D,
+        VkRect2D', module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Enum.Shader, VkSpecializationInfo,
+        VkSpecializationInfo', VkSpecializationMapEntry,
+        VkSpecializationMapEntry',
+        module Graphics.Vulkan.Types.Enum.Stencil, VkStencilOpState,
+        VkStencilOpState', module Graphics.Vulkan.Types.Enum.StructureType,
+        VkVertexInputAttributeDescription,
+        VkVertexInputAttributeDescription',
+        VkVertexInputBindingDescription, VkVertexInputBindingDescription',
+        module Graphics.Vulkan.Types.Enum.VertexInputRate, VkViewport,
+        VkViewport', -- > #include "vk_platform.h"
+                     VkCmdSetDiscardRectangleEXT,
+        pattern VkCmdSetDiscardRectangleEXT,
         HS_vkCmdSetDiscardRectangleEXT, PFN_vkCmdSetDiscardRectangleEXT,
         module Graphics.Vulkan.Types.Handles,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Struct.Offset,
+        module Graphics.Vulkan.Types.Struct.Rect,
         VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION,
         pattern VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION,
         VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME,
@@ -69,39 +100,81 @@
         pattern VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT,
         pattern VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT)
        where
-import           GHC.Ptr                                            (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                       (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.Blend
-import           Graphics.Vulkan.Types.Enum.Color
-import           Graphics.Vulkan.Types.Enum.CompareOp
-import           Graphics.Vulkan.Types.Enum.CullModeFlags
-import           Graphics.Vulkan.Types.Enum.DiscardRectangleModeEXT
-import           Graphics.Vulkan.Types.Enum.DynamicState
-import           Graphics.Vulkan.Types.Enum.Format
-import           Graphics.Vulkan.Types.Enum.FrontFace
-import           Graphics.Vulkan.Types.Enum.LogicOp
-import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.Pipeline
-import           Graphics.Vulkan.Types.Enum.PolygonMode
-import           Graphics.Vulkan.Types.Enum.PrimitiveTopology
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.Shader
-import           Graphics.Vulkan.Types.Enum.Stencil
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.VertexInputRate
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.Offset
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
-import           Graphics.Vulkan.Types.Struct.Pipeline
-import           Graphics.Vulkan.Types.Struct.Rect
-import           Graphics.Vulkan.Types.Struct.Specialization
-import           Graphics.Vulkan.Types.Struct.StencilOpState
-import           Graphics.Vulkan.Types.Struct.VertexInput
-import           Graphics.Vulkan.Types.Struct.Viewport
+import GHC.Ptr                                            (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                       (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.Blend
+import Graphics.Vulkan.Types.Enum.Color
+import Graphics.Vulkan.Types.Enum.CompareOp
+import Graphics.Vulkan.Types.Enum.CullModeFlags
+import Graphics.Vulkan.Types.Enum.DiscardRectangleModeEXT
+import Graphics.Vulkan.Types.Enum.DynamicState
+import Graphics.Vulkan.Types.Enum.Format
+import Graphics.Vulkan.Types.Enum.FrontFace
+import Graphics.Vulkan.Types.Enum.LogicOp
+import Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import Graphics.Vulkan.Types.Enum.Pipeline
+import Graphics.Vulkan.Types.Enum.PolygonMode
+import Graphics.Vulkan.Types.Enum.PrimitiveTopology
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.Shader
+import Graphics.Vulkan.Types.Enum.Stencil
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.VertexInputRate
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.Extent
+import Graphics.Vulkan.Types.Struct.Offset
+import Graphics.Vulkan.Types.Struct.PhysicalDevice        (VkPhysicalDeviceDiscardRectanglePropertiesEXT,
+                                                           VkPhysicalDeviceDiscardRectanglePropertiesEXT',
+                                                           VkPhysicalDeviceLimits,
+                                                           VkPhysicalDeviceLimits',
+                                                           VkPhysicalDeviceProperties,
+                                                           VkPhysicalDeviceProperties',
+                                                           VkPhysicalDeviceProperties2,
+                                                           VkPhysicalDeviceProperties2',
+                                                           VkPhysicalDeviceSparseProperties,
+                                                           VkPhysicalDeviceSparseProperties')
+import Graphics.Vulkan.Types.Struct.Pipeline              (VkGraphicsPipelineCreateInfo,
+                                                           VkGraphicsPipelineCreateInfo',
+                                                           VkPipelineColorBlendAttachmentState,
+                                                           VkPipelineColorBlendAttachmentState',
+                                                           VkPipelineColorBlendStateCreateInfo,
+                                                           VkPipelineColorBlendStateCreateInfo',
+                                                           VkPipelineDepthStencilStateCreateInfo,
+                                                           VkPipelineDepthStencilStateCreateInfo',
+                                                           VkPipelineDiscardRectangleStateCreateInfoEXT,
+                                                           VkPipelineDiscardRectangleStateCreateInfoEXT',
+                                                           VkPipelineDynamicStateCreateInfo,
+                                                           VkPipelineDynamicStateCreateInfo',
+                                                           VkPipelineInputAssemblyStateCreateInfo,
+                                                           VkPipelineInputAssemblyStateCreateInfo',
+                                                           VkPipelineMultisampleStateCreateInfo,
+                                                           VkPipelineMultisampleStateCreateInfo',
+                                                           VkPipelineRasterizationStateCreateInfo,
+                                                           VkPipelineRasterizationStateCreateInfo',
+                                                           VkPipelineShaderStageCreateInfo,
+                                                           VkPipelineShaderStageCreateInfo',
+                                                           VkPipelineTessellationStateCreateInfo,
+                                                           VkPipelineTessellationStateCreateInfo',
+                                                           VkPipelineVertexInputStateCreateInfo,
+                                                           VkPipelineVertexInputStateCreateInfo',
+                                                           VkPipelineViewportStateCreateInfo,
+                                                           VkPipelineViewportStateCreateInfo')
+import Graphics.Vulkan.Types.Struct.Rect
+import Graphics.Vulkan.Types.Struct.Specialization        (VkSpecializationInfo,
+                                                           VkSpecializationInfo',
+                                                           VkSpecializationMapEntry,
+                                                           VkSpecializationMapEntry')
+import Graphics.Vulkan.Types.Struct.StencilOpState        (VkStencilOpState,
+                                                           VkStencilOpState')
+import Graphics.Vulkan.Types.Struct.VertexInput           (VkVertexInputAttributeDescription,
+                                                           VkVertexInputAttributeDescription',
+                                                           VkVertexInputBindingDescription,
+                                                           VkVertexInputBindingDescription')
+import Graphics.Vulkan.Types.Struct.Viewport              (VkViewport,
+                                                           VkViewport')
 
 pattern VkCmdSetDiscardRectangleEXT :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_display_control.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_display_control.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_display_control.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_display_control.hs
@@ -31,19 +31,19 @@
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.Color,
         module Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR,
-        module Graphics.Vulkan.Types.Struct.Device,
-        module Graphics.Vulkan.Types.Enum.Device,
-        module Graphics.Vulkan.Types.Struct.Display,
-        module Graphics.Vulkan.Types.Enum.Display,
-        module Graphics.Vulkan.Types.Struct.Extent,
-        module Graphics.Vulkan.Types.Enum.Format,
+        VkDeviceEventInfoEXT, VkDeviceEventInfoEXT',
+        module Graphics.Vulkan.Types.Enum.Device, VkDisplayEventInfoEXT,
+        VkDisplayEventInfoEXT', module Graphics.Vulkan.Types.Enum.Display,
+        VkDisplayPowerInfoEXT, VkDisplayPowerInfoEXT', VkExtent2D,
+        VkExtent2D', module Graphics.Vulkan.Types.Enum.Format,
         module Graphics.Vulkan.Types.Enum.Image,
         module Graphics.Vulkan.Types.Enum.PresentModeKHR,
         module Graphics.Vulkan.Types.Enum.SharingMode,
         module Graphics.Vulkan.Types.Enum.StructureType,
         module Graphics.Vulkan.Types.Enum.Surface,
-        module Graphics.Vulkan.Types.Struct.SwapchainC,
+        VkSwapchainCounterCreateInfoEXT, VkSwapchainCounterCreateInfoEXT',
         module Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR,
+        VkSwapchainCreateInfoKHR, VkSwapchainCreateInfoKHR',
         -- > #include "vk_platform.h"
         VkDisplayPowerControlEXT, pattern VkDisplayPowerControlEXT,
         HS_vkDisplayPowerControlEXT, PFN_vkDisplayPowerControlEXT,
@@ -60,6 +60,8 @@
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.Device,
+        module Graphics.Vulkan.Types.Struct.Display,
         VK_EXT_DISPLAY_CONTROL_SPEC_VERSION,
         pattern VK_EXT_DISPLAY_CONTROL_SPEC_VERSION,
         VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME,
@@ -69,31 +71,35 @@
         pattern VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT,
         pattern VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT)
        where
-import           GHC.Ptr                                            (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                       (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.Color
-import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
-import           Graphics.Vulkan.Types.Enum.Device
-import           Graphics.Vulkan.Types.Enum.Display
-import           Graphics.Vulkan.Types.Enum.Format
-import           Graphics.Vulkan.Types.Enum.Image
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.PresentModeKHR
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.SharingMode
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.Surface
-import           Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.Device
-import           Graphics.Vulkan.Types.Struct.Display
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.SwapchainC
+import GHC.Ptr                                            (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                       (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.Color
+import Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
+import Graphics.Vulkan.Types.Enum.Device
+import Graphics.Vulkan.Types.Enum.Display
+import Graphics.Vulkan.Types.Enum.Format
+import Graphics.Vulkan.Types.Enum.Image
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.PresentModeKHR
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.SharingMode
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.Surface
+import Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.Device
+import Graphics.Vulkan.Types.Struct.Display
+import Graphics.Vulkan.Types.Struct.Extent                (VkExtent2D,
+                                                           VkExtent2D')
+import Graphics.Vulkan.Types.Struct.SwapchainC            (VkSwapchainCounterCreateInfoEXT,
+                                                           VkSwapchainCounterCreateInfoEXT',
+                                                           VkSwapchainCreateInfoKHR,
+                                                           VkSwapchainCreateInfoKHR')
 
 pattern VkDisplayPowerControlEXT :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_display_surface_counter.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_display_surface_counter.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_display_surface_counter.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_display_surface_counter.hs
@@ -29,11 +29,10 @@
 
         -- ** Required extensions: 'VK_KHR_display'.
         module Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR,
-        module Graphics.Vulkan.Types.Struct.Extent,
-        module Graphics.Vulkan.Types.BaseTypes,
+        VkExtent2D, VkExtent2D', module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.Image,
         module Graphics.Vulkan.Types.Enum.StructureType,
-        module Graphics.Vulkan.Types.Struct.Surface,
+        VkSurfaceCapabilities2EXT, VkSurfaceCapabilities2EXT',
         module Graphics.Vulkan.Types.Enum.Surface,
         -- > #include "vk_platform.h"
         VkGetPhysicalDeviceSurfaceCapabilities2EXT,
@@ -43,6 +42,8 @@
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Struct.Surface,
         VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION,
         pattern VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION,
         VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME,
@@ -50,18 +51,18 @@
         pattern VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
         pattern VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT)
        where
-import           GHC.Ptr                                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
-import           Graphics.Vulkan.Types.Enum.Image
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.Surface
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.Surface
+import GHC.Ptr                                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
+import Graphics.Vulkan.Types.Enum.Image
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.Surface
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.Extent
+import Graphics.Vulkan.Types.Struct.Surface
 
 pattern VkGetPhysicalDeviceSurfaceCapabilities2EXT :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_external_memory_dma_buf.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_external_memory_dma_buf.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_external_memory_dma_buf.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_external_memory_dma_buf.hs
@@ -28,10 +28,10 @@
         pattern VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME,
         pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT)
        where
-import           GHC.Ptr                             (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.External (VkExternalMemoryHandleTypeBitmask (..),
-                                                      VkExternalMemoryHandleTypeFlagBits)
+import GHC.Ptr                             (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.Enum.External (VkExternalMemoryHandleTypeBitmask (..),
+                                            VkExternalMemoryHandleTypeFlagBits)
 
 pattern VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_external_memory_host.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_external_memory_host.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_external_memory_host.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_external_memory_host.hs
@@ -32,9 +32,17 @@
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.External,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.Import,
-        module Graphics.Vulkan.Types.Struct.Memory,
-        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        VkImportMemoryHostPointerInfoEXT,
+        VkImportMemoryHostPointerInfoEXT', VkMemoryAllocateInfo,
+        VkMemoryAllocateInfo', VkMemoryHostPointerPropertiesEXT,
+        VkMemoryHostPointerPropertiesEXT',
+        VkPhysicalDeviceExternalMemoryHostPropertiesEXT,
+        VkPhysicalDeviceExternalMemoryHostPropertiesEXT',
+        VkPhysicalDeviceLimits, VkPhysicalDeviceLimits',
+        VkPhysicalDeviceProperties, VkPhysicalDeviceProperties',
+        VkPhysicalDeviceProperties2, VkPhysicalDeviceProperties2',
+        VkPhysicalDeviceSparseProperties,
+        VkPhysicalDeviceSparseProperties',
         module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
         module Graphics.Vulkan.Types.Enum.StructureType,
@@ -45,6 +53,7 @@
         PFN_vkGetMemoryHostPointerPropertiesEXT,
         module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
+        module Graphics.Vulkan.Types.Struct.Memory,
         VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION,
         pattern VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION,
         VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME,
@@ -55,20 +64,30 @@
         pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,
         pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT)
        where
-import           GHC.Ptr                                       (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                  (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.External
-import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.Import
-import           Graphics.Vulkan.Types.Struct.Memory
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import GHC.Ptr                                       (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                  (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.External
+import Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.Import           (VkImportMemoryHostPointerInfoEXT,
+                                                      VkImportMemoryHostPointerInfoEXT')
+import Graphics.Vulkan.Types.Struct.Memory
+import Graphics.Vulkan.Types.Struct.PhysicalDevice   (VkPhysicalDeviceExternalMemoryHostPropertiesEXT,
+                                                      VkPhysicalDeviceExternalMemoryHostPropertiesEXT',
+                                                      VkPhysicalDeviceLimits,
+                                                      VkPhysicalDeviceLimits',
+                                                      VkPhysicalDeviceProperties,
+                                                      VkPhysicalDeviceProperties',
+                                                      VkPhysicalDeviceProperties2,
+                                                      VkPhysicalDeviceProperties2',
+                                                      VkPhysicalDeviceSparseProperties,
+                                                      VkPhysicalDeviceSparseProperties')
 
 pattern VkGetMemoryHostPointerPropertiesEXT :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_global_priority.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_global_priority.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_global_priority.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_global_priority.hs
@@ -17,8 +17,9 @@
         -- type: @device@
         --
         -- Extension number: @175@
-        module Graphics.Vulkan.Types.Enum.Device,
-        module Graphics.Vulkan.Types.Struct.Device,
+        module Graphics.Vulkan.Types.Enum.Device, VkDeviceQueueCreateInfo,
+        VkDeviceQueueCreateInfo', VkDeviceQueueGlobalPriorityCreateInfoEXT,
+        VkDeviceQueueGlobalPriorityCreateInfoEXT',
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.Queue,
         module Graphics.Vulkan.Types.Enum.StructureType,
@@ -30,14 +31,17 @@
         pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT,
         pattern VK_ERROR_NOT_PERMITTED_EXT)
        where
-import           GHC.Ptr                                  (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.Device
-import           Graphics.Vulkan.Types.Enum.Queue
-import           Graphics.Vulkan.Types.Enum.Result        (VkResult (..))
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Struct.Device
+import GHC.Ptr                                  (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.Device
+import Graphics.Vulkan.Types.Enum.Queue
+import Graphics.Vulkan.Types.Enum.Result        (VkResult (..))
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Struct.Device      (VkDeviceQueueCreateInfo,
+                                                 VkDeviceQueueCreateInfo',
+                                                 VkDeviceQueueGlobalPriorityCreateInfoEXT,
+                                                 VkDeviceQueueGlobalPriorityCreateInfoEXT')
 
 pattern VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_hdr_metadata.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_hdr_metadata.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_hdr_metadata.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_hdr_metadata.hs
@@ -27,26 +27,27 @@
         --
 
         -- ** Required extensions: 'VK_KHR_swapchain'.
-        module Graphics.Vulkan.Types.Struct.HdrMetadataEXT,
-        module Graphics.Vulkan.Types.Enum.StructureType,
-        module Graphics.Vulkan.Types.Struct.XYColorEXT,
-        -- > #include "vk_platform.h"
-        VkSetHdrMetadataEXT, pattern VkSetHdrMetadataEXT,
+        VkHdrMetadataEXT, VkHdrMetadataEXT',
+        module Graphics.Vulkan.Types.Enum.StructureType, VkXYColorEXT,
+        VkXYColorEXT', -- > #include "vk_platform.h"
+                       VkSetHdrMetadataEXT, pattern VkSetHdrMetadataEXT,
         HS_vkSetHdrMetadataEXT, PFN_vkSetHdrMetadataEXT,
         module Graphics.Vulkan.Types.Handles,
+        module Graphics.Vulkan.Types.Struct.HdrMetadataEXT,
+        module Graphics.Vulkan.Types.Struct.XYColorEXT,
         VK_EXT_HDR_METADATA_SPEC_VERSION,
         pattern VK_EXT_HDR_METADATA_SPEC_VERSION,
         VK_EXT_HDR_METADATA_EXTENSION_NAME,
         pattern VK_EXT_HDR_METADATA_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_HDR_METADATA_EXT)
        where
-import           GHC.Ptr                                     (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.HdrMetadataEXT
-import           Graphics.Vulkan.Types.Struct.XYColorEXT
+import GHC.Ptr                                     (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.HdrMetadataEXT
+import Graphics.Vulkan.Types.Struct.XYColorEXT
 
 pattern VkSetHdrMetadataEXT :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_post_depth_coverage.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_post_depth_coverage.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_post_depth_coverage.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_post_depth_coverage.hs
@@ -22,8 +22,8 @@
         VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME,
         pattern VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION :: (Num a, Eq a) =>
         a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_queue_family_foreign.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_queue_family_foreign.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_queue_family_foreign.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_queue_family_foreign.hs
@@ -28,9 +28,9 @@
         pattern VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME,
         pattern VK_QUEUE_FAMILY_FOREIGN_EXT)
        where
-import           GHC.Ptr                   (Ptr (..))
-import           Graphics.Vulkan.Constants (pattern VK_QUEUE_FAMILY_FOREIGN_EXT)
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                   (Ptr (..))
+import Graphics.Vulkan.Constants (pattern VK_QUEUE_FAMILY_FOREIGN_EXT)
+import Graphics.Vulkan.Marshal
 
 pattern VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_sample_locations.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_sample_locations.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_sample_locations.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_sample_locations.hs
@@ -25,24 +25,36 @@
         -- Extension number: @144@
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.Enum.AccessFlags,
-        module Graphics.Vulkan.Types.Struct.Attachment,
-        module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.Clear,
-        module Graphics.Vulkan.Types.Struct.Extent,
-        module Graphics.Vulkan.Types.Enum.Image,
-        module Graphics.Vulkan.Types.Struct.Image,
-        module Graphics.Vulkan.Types.Struct.MultisamplePropertiesEXT,
-        module Graphics.Vulkan.Types.Struct.Offset,
-        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        VkAttachmentSampleLocationsEXT, VkAttachmentSampleLocationsEXT',
+        module Graphics.Vulkan.Types.BaseTypes, VkClearColorValue,
+        VkClearColorValue', VkClearDepthStencilValue,
+        VkClearDepthStencilValue', VkClearValue, VkClearValue', VkExtent2D,
+        VkExtent2D', module Graphics.Vulkan.Types.Enum.Image,
+        VkImageMemoryBarrier, VkImageMemoryBarrier',
+        VkImageSubresourceRange, VkImageSubresourceRange',
+        VkMultisamplePropertiesEXT, VkMultisamplePropertiesEXT',
+        VkOffset2D, VkOffset2D', VkPhysicalDeviceLimits,
+        VkPhysicalDeviceLimits', VkPhysicalDeviceProperties,
+        VkPhysicalDeviceProperties', VkPhysicalDeviceProperties2,
+        VkPhysicalDeviceProperties2',
+        VkPhysicalDeviceSampleLocationsPropertiesEXT,
+        VkPhysicalDeviceSampleLocationsPropertiesEXT',
+        VkPhysicalDeviceSparseProperties,
+        VkPhysicalDeviceSparseProperties',
         module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.Pipeline,
-        module Graphics.Vulkan.Types.Struct.Rect,
-        module Graphics.Vulkan.Types.Struct.RenderPass,
+        VkPipelineMultisampleStateCreateInfo,
+        VkPipelineMultisampleStateCreateInfo',
+        VkPipelineSampleLocationsStateCreateInfoEXT,
+        VkPipelineSampleLocationsStateCreateInfoEXT', VkRect2D, VkRect2D',
+        VkRenderPassBeginInfo, VkRenderPassBeginInfo',
+        VkRenderPassSampleLocationsBeginInfoEXT,
+        VkRenderPassSampleLocationsBeginInfoEXT',
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
-        module Graphics.Vulkan.Types.Struct.SampleLocation,
+        VkSampleLocationEXT, VkSampleLocationEXT',
+        VkSampleLocationsInfoEXT, VkSampleLocationsInfoEXT',
         module Graphics.Vulkan.Types.Enum.StructureType,
-        module Graphics.Vulkan.Types.Struct.Subpass,
+        VkSubpassSampleLocationsEXT, VkSubpassSampleLocationsEXT',
         -- > #include "vk_platform.h"
         VkCmdSetSampleLocationsEXT, pattern VkCmdSetSampleLocationsEXT,
         HS_vkCmdSetSampleLocationsEXT, PFN_vkCmdSetSampleLocationsEXT,
@@ -51,6 +63,10 @@
         HS_vkGetPhysicalDeviceMultisamplePropertiesEXT,
         PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT,
         module Graphics.Vulkan.Types.Handles,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Struct.Image,
+        module Graphics.Vulkan.Types.Struct.MultisamplePropertiesEXT,
+        module Graphics.Vulkan.Types.Struct.SampleLocation,
         VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION,
         pattern VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION,
         VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME,
@@ -63,30 +79,54 @@
         pattern VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT,
         pattern VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT)
        where
-import           GHC.Ptr                                               (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                          (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.AccessFlags
-import           Graphics.Vulkan.Types.Enum.DynamicState               (VkDynamicState (..))
-import           Graphics.Vulkan.Types.Enum.Image
-import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.Attachment
-import           Graphics.Vulkan.Types.Struct.Clear
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.Image
-import           Graphics.Vulkan.Types.Struct.MultisamplePropertiesEXT
-import           Graphics.Vulkan.Types.Struct.Offset
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
-import           Graphics.Vulkan.Types.Struct.Pipeline
-import           Graphics.Vulkan.Types.Struct.Rect
-import           Graphics.Vulkan.Types.Struct.RenderPass
-import           Graphics.Vulkan.Types.Struct.SampleLocation
-import           Graphics.Vulkan.Types.Struct.Subpass
+import GHC.Ptr                                               (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                          (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.AccessFlags
+import Graphics.Vulkan.Types.Enum.DynamicState               (VkDynamicState (..))
+import Graphics.Vulkan.Types.Enum.Image
+import Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.Attachment               (VkAttachmentSampleLocationsEXT,
+                                                              VkAttachmentSampleLocationsEXT')
+import Graphics.Vulkan.Types.Struct.Clear                    (VkClearColorValue,
+                                                              VkClearColorValue',
+                                                              VkClearDepthStencilValue,
+                                                              VkClearDepthStencilValue',
+                                                              VkClearValue,
+                                                              VkClearValue')
+import Graphics.Vulkan.Types.Struct.Extent
+import Graphics.Vulkan.Types.Struct.Image
+import Graphics.Vulkan.Types.Struct.MultisamplePropertiesEXT
+import Graphics.Vulkan.Types.Struct.Offset                   (VkOffset2D,
+                                                              VkOffset2D')
+import Graphics.Vulkan.Types.Struct.PhysicalDevice           (VkPhysicalDeviceLimits,
+                                                              VkPhysicalDeviceLimits',
+                                                              VkPhysicalDeviceProperties,
+                                                              VkPhysicalDeviceProperties',
+                                                              VkPhysicalDeviceProperties2,
+                                                              VkPhysicalDeviceProperties2',
+                                                              VkPhysicalDeviceSampleLocationsPropertiesEXT,
+                                                              VkPhysicalDeviceSampleLocationsPropertiesEXT',
+                                                              VkPhysicalDeviceSparseProperties,
+                                                              VkPhysicalDeviceSparseProperties')
+import Graphics.Vulkan.Types.Struct.Pipeline                 (VkPipelineMultisampleStateCreateInfo,
+                                                              VkPipelineMultisampleStateCreateInfo',
+                                                              VkPipelineSampleLocationsStateCreateInfoEXT,
+                                                              VkPipelineSampleLocationsStateCreateInfoEXT')
+import Graphics.Vulkan.Types.Struct.Rect                     (VkRect2D,
+                                                              VkRect2D')
+import Graphics.Vulkan.Types.Struct.RenderPass               (VkRenderPassBeginInfo,
+                                                              VkRenderPassBeginInfo',
+                                                              VkRenderPassSampleLocationsBeginInfoEXT,
+                                                              VkRenderPassSampleLocationsBeginInfoEXT')
+import Graphics.Vulkan.Types.Struct.SampleLocation
+import Graphics.Vulkan.Types.Struct.Subpass                  (VkSubpassSampleLocationsEXT,
+                                                              VkSubpassSampleLocationsEXT')
 
 pattern VkCmdSetSampleLocationsEXT :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_sampler_filter_minmax.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_sampler_filter_minmax.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_sampler_filter_minmax.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_sampler_filter_minmax.hs
@@ -26,13 +26,20 @@
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.BorderColor,
         module Graphics.Vulkan.Types.Enum.CompareOp,
-        module Graphics.Vulkan.Types.Enum.Filter,
-        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Enum.Filter, VkPhysicalDeviceLimits,
+        VkPhysicalDeviceLimits', VkPhysicalDeviceProperties,
+        VkPhysicalDeviceProperties', VkPhysicalDeviceProperties2,
+        VkPhysicalDeviceProperties2',
+        VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT,
+        VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT',
+        VkPhysicalDeviceSparseProperties,
+        VkPhysicalDeviceSparseProperties',
         module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
         module Graphics.Vulkan.Types.Enum.Sampler,
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.Sampler,
+        module Graphics.Vulkan.Types.Bitmasks, VkSamplerCreateInfo,
+        VkSamplerCreateInfo', VkSamplerReductionModeCreateInfoEXT,
+        VkSamplerReductionModeCreateInfoEXT',
         module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION,
@@ -43,21 +50,33 @@
         pattern VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT,
         pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT)
        where
-import           GHC.Ptr                                       (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.BorderColor
-import           Graphics.Vulkan.Types.Enum.CompareOp
-import           Graphics.Vulkan.Types.Enum.Filter
-import           Graphics.Vulkan.Types.Enum.Format             (VkFormatFeatureBitmask (..),
-                                                                VkFormatFeatureFlagBits)
-import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.Sampler
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
-import           Graphics.Vulkan.Types.Struct.Sampler
+import GHC.Ptr                                       (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.BorderColor
+import Graphics.Vulkan.Types.Enum.CompareOp
+import Graphics.Vulkan.Types.Enum.Filter
+import Graphics.Vulkan.Types.Enum.Format             (VkFormatFeatureBitmask (..),
+                                                      VkFormatFeatureFlagBits)
+import Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.Sampler
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Struct.PhysicalDevice   (VkPhysicalDeviceLimits,
+                                                      VkPhysicalDeviceLimits',
+                                                      VkPhysicalDeviceProperties,
+                                                      VkPhysicalDeviceProperties',
+                                                      VkPhysicalDeviceProperties2,
+                                                      VkPhysicalDeviceProperties2',
+                                                      VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT,
+                                                      VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT',
+                                                      VkPhysicalDeviceSparseProperties,
+                                                      VkPhysicalDeviceSparseProperties')
+import Graphics.Vulkan.Types.Struct.Sampler          (VkSamplerCreateInfo,
+                                                      VkSamplerCreateInfo',
+                                                      VkSamplerReductionModeCreateInfoEXT,
+                                                      VkSamplerReductionModeCreateInfoEXT')
 
 pattern VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_shader_stencil_export.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_shader_stencil_export.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_shader_stencil_export.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_shader_stencil_export.hs
@@ -22,8 +22,8 @@
         VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME,
         pattern VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_shader_subgroup_ballot.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_shader_subgroup_ballot.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_shader_subgroup_ballot.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_shader_subgroup_ballot.hs
@@ -22,8 +22,8 @@
         VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME,
         pattern VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_shader_subgroup_vote.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_shader_subgroup_vote.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_shader_subgroup_vote.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_shader_subgroup_vote.hs
@@ -22,8 +22,8 @@
         VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME,
         pattern VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_shader_viewport_index_layer.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_shader_viewport_index_layer.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_shader_viewport_index_layer.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_shader_viewport_index_layer.hs
@@ -22,8 +22,8 @@
         VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME,
         pattern VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_swapchain_colorspace.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_swapchain_colorspace.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_swapchain_colorspace.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_swapchain_colorspace.hs
@@ -41,9 +41,9 @@
         pattern VK_COLOR_SPACE_PASS_THROUGH_EXT,
         pattern VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT)
        where
-import           GHC.Ptr                          (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.Color (VkColorSpaceKHR (..))
+import GHC.Ptr                          (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.Enum.Color (VkColorSpaceKHR (..))
 
 pattern VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_validation_cache.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_validation_cache.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_validation_cache.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_validation_cache.hs
@@ -25,10 +25,12 @@
         -- Extension number: @161@
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.Shader,
+        module Graphics.Vulkan.Types.Bitmasks, VkShaderModuleCreateInfo,
+        VkShaderModuleCreateInfo',
+        VkShaderModuleValidationCacheCreateInfoEXT,
+        VkShaderModuleValidationCacheCreateInfoEXT',
         module Graphics.Vulkan.Types.Enum.StructureType,
-        module Graphics.Vulkan.Types.Struct.Validation,
+        VkValidationCacheCreateInfoEXT, VkValidationCacheCreateInfoEXT',
         module Graphics.Vulkan.Types.Enum.ValidationC,
         -- > #include "vk_platform.h"
         VkCreateValidationCacheEXT, pattern VkCreateValidationCacheEXT,
@@ -45,6 +47,7 @@
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.Validation,
         VK_EXT_VALIDATION_CACHE_SPEC_VERSION,
         pattern VK_EXT_VALIDATION_CACHE_SPEC_VERSION,
         VK_EXT_VALIDATION_CACHE_EXTENSION_NAME,
@@ -54,23 +57,26 @@
         pattern VK_OBJECT_TYPE_VALIDATION_CACHE_EXT,
         pattern VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT)
        where
-import           GHC.Ptr                                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.Debug                  (VkDebugReportObjectTypeEXT (..))
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.Object                 (VkObjectType (..))
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Enum.ValidationC
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.Shader
-import           Graphics.Vulkan.Types.Struct.Validation
+import GHC.Ptr                                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.Debug                  (VkDebugReportObjectTypeEXT (..))
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.Object                 (VkObjectType (..))
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Enum.ValidationC
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.Shader               (VkShaderModuleCreateInfo,
+                                                          VkShaderModuleCreateInfo',
+                                                          VkShaderModuleValidationCacheCreateInfoEXT,
+                                                          VkShaderModuleValidationCacheCreateInfoEXT')
+import Graphics.Vulkan.Types.Struct.Validation
 
 pattern VkCreateValidationCacheEXT :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_validation_flags.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_validation_flags.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_validation_flags.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_validation_flags.hs
@@ -17,14 +17,13 @@
         -- type: @instance@
         --
         -- Extension number: @62@
-        module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Struct.ApplicationInfo,
-        module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.InstanceCreateInfo,
+        module Graphics.Vulkan.Marshal, VkApplicationInfo,
+        VkApplicationInfo', module Graphics.Vulkan.Types.BaseTypes,
+        module Graphics.Vulkan.Types.Bitmasks, VkInstanceCreateInfo,
+        VkInstanceCreateInfo',
         module Graphics.Vulkan.Types.Enum.StructureType,
         module Graphics.Vulkan.Types.Enum.ValidationC,
-        module Graphics.Vulkan.Types.Struct.Validation,
+        VkValidationFlagsEXT, VkValidationFlagsEXT',
         -- > #include "vk_platform.h"
         VK_EXT_VALIDATION_FLAGS_SPEC_VERSION,
         pattern VK_EXT_VALIDATION_FLAGS_SPEC_VERSION,
@@ -32,15 +31,18 @@
         pattern VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT)
        where
-import           GHC.Ptr                                         (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.ValidationC
-import           Graphics.Vulkan.Types.Struct.ApplicationInfo
-import           Graphics.Vulkan.Types.Struct.InstanceCreateInfo
-import           Graphics.Vulkan.Types.Struct.Validation
+import GHC.Ptr                                         (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.ValidationC
+import Graphics.Vulkan.Types.Struct.ApplicationInfo    (VkApplicationInfo,
+                                                        VkApplicationInfo')
+import Graphics.Vulkan.Types.Struct.InstanceCreateInfo (VkInstanceCreateInfo,
+                                                        VkInstanceCreateInfo')
+import Graphics.Vulkan.Types.Struct.Validation         (VkValidationFlagsEXT,
+                                                        VkValidationFlagsEXT')
 
 pattern VK_EXT_VALIDATION_FLAGS_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_vertex_attribute_divisor.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_vertex_attribute_divisor.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_vertex_attribute_divisor.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_vertex_attribute_divisor.hs
@@ -24,14 +24,26 @@
         -- ** Required extensions: 'VK_KHR_get_physical_device_properties2'.
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.Format,
-        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Enum.Format, VkPhysicalDeviceLimits,
+        VkPhysicalDeviceLimits', VkPhysicalDeviceProperties,
+        VkPhysicalDeviceProperties', VkPhysicalDeviceProperties2,
+        VkPhysicalDeviceProperties2', VkPhysicalDeviceSparseProperties,
+        VkPhysicalDeviceSparseProperties',
         module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
-        module Graphics.Vulkan.Types.Struct.Pipeline,
+        VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT,
+        VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT',
+        VkPipelineVertexInputDivisorStateCreateInfoEXT,
+        VkPipelineVertexInputDivisorStateCreateInfoEXT',
         module Graphics.Vulkan.Types.Bitmasks,
+        VkPipelineVertexInputStateCreateInfo,
+        VkPipelineVertexInputStateCreateInfo',
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
         module Graphics.Vulkan.Types.Enum.StructureType,
-        module Graphics.Vulkan.Types.Struct.VertexInput,
+        VkVertexInputAttributeDescription,
+        VkVertexInputAttributeDescription',
+        VkVertexInputBindingDescription, VkVertexInputBindingDescription',
+        VkVertexInputBindingDivisorDescriptionEXT,
+        VkVertexInputBindingDivisorDescriptionEXT',
         module Graphics.Vulkan.Types.Enum.VertexInputRate,
         -- > #include "vk_platform.h"
         VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION,
@@ -41,18 +53,35 @@
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,
         pattern VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT)
        where
-import           GHC.Ptr                                       (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.Format
-import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.VertexInputRate
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
-import           Graphics.Vulkan.Types.Struct.Pipeline
-import           Graphics.Vulkan.Types.Struct.VertexInput
+import GHC.Ptr                                       (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.Format
+import Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.VertexInputRate
+import Graphics.Vulkan.Types.Struct.PhysicalDevice   (VkPhysicalDeviceLimits,
+                                                      VkPhysicalDeviceLimits',
+                                                      VkPhysicalDeviceProperties,
+                                                      VkPhysicalDeviceProperties',
+                                                      VkPhysicalDeviceProperties2,
+                                                      VkPhysicalDeviceProperties2',
+                                                      VkPhysicalDeviceSparseProperties,
+                                                      VkPhysicalDeviceSparseProperties',
+                                                      VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT,
+                                                      VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT')
+import Graphics.Vulkan.Types.Struct.Pipeline         (VkPipelineVertexInputDivisorStateCreateInfoEXT,
+                                                      VkPipelineVertexInputDivisorStateCreateInfoEXT',
+                                                      VkPipelineVertexInputStateCreateInfo,
+                                                      VkPipelineVertexInputStateCreateInfo')
+import Graphics.Vulkan.Types.Struct.VertexInput      (VkVertexInputAttributeDescription,
+                                                      VkVertexInputAttributeDescription',
+                                                      VkVertexInputBindingDescription,
+                                                      VkVertexInputBindingDescription',
+                                                      VkVertexInputBindingDivisorDescriptionEXT,
+                                                      VkVertexInputBindingDivisorDescriptionEXT')
 
 pattern VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_GOOGLE_display_timing.hs b/src-gen/Graphics/Vulkan/Ext/VK_GOOGLE_display_timing.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_GOOGLE_display_timing.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_GOOGLE_display_timing.hs
@@ -27,9 +27,11 @@
         --
 
         -- ** Required extensions: 'VK_KHR_swapchain'.
-        module Graphics.Vulkan.Types.Struct.PastPresentationTimingGOOGLE,
-        module Graphics.Vulkan.Types.Struct.Present,
-        module Graphics.Vulkan.Types.Struct.RefreshCycleDurationGOOGLE,
+        VkPastPresentationTimingGOOGLE, VkPastPresentationTimingGOOGLE',
+        VkPresentInfoKHR, VkPresentInfoKHR', VkPresentTimeGOOGLE,
+        VkPresentTimeGOOGLE', VkPresentTimesInfoGOOGLE,
+        VkPresentTimesInfoGOOGLE', VkRefreshCycleDurationGOOGLE,
+        VkRefreshCycleDurationGOOGLE',
         module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
@@ -43,21 +45,28 @@
         PFN_vkGetPastPresentationTimingGOOGLE,
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.Handles,
+        module Graphics.Vulkan.Types.Struct.PastPresentationTimingGOOGLE,
+        module Graphics.Vulkan.Types.Struct.RefreshCycleDurationGOOGLE,
         VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION,
         pattern VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION,
         VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME,
         pattern VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE)
        where
-import           GHC.Ptr                                                   (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                              (VulkanProc (..))
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.PastPresentationTimingGOOGLE
-import           Graphics.Vulkan.Types.Struct.Present
-import           Graphics.Vulkan.Types.Struct.RefreshCycleDurationGOOGLE
+import GHC.Ptr                                                   (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                              (VulkanProc (..))
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.PastPresentationTimingGOOGLE
+import Graphics.Vulkan.Types.Struct.Present                      (VkPresentInfoKHR,
+                                                                  VkPresentInfoKHR',
+                                                                  VkPresentTimeGOOGLE,
+                                                                  VkPresentTimeGOOGLE',
+                                                                  VkPresentTimesInfoGOOGLE,
+                                                                  VkPresentTimesInfoGOOGLE')
+import Graphics.Vulkan.Types.Struct.RefreshCycleDurationGOOGLE
 
 pattern VkGetRefreshCycleDurationGOOGLE :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_IMG_filter_cubic.hs b/src-gen/Graphics/Vulkan/Ext/VK_IMG_filter_cubic.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_IMG_filter_cubic.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_IMG_filter_cubic.hs
@@ -24,11 +24,11 @@
         pattern VK_FILTER_CUBIC_IMG,
         pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG)
        where
-import           GHC.Ptr                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.Filter (VkFilter (..))
-import           Graphics.Vulkan.Types.Enum.Format (VkFormatFeatureBitmask (..),
-                                                    VkFormatFeatureFlagBits)
+import GHC.Ptr                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.Enum.Filter (VkFilter (..))
+import Graphics.Vulkan.Types.Enum.Format (VkFormatFeatureBitmask (..),
+                                          VkFormatFeatureFlagBits)
 
 pattern VK_IMG_FILTER_CUBIC_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_IMG_format_pvrtc.hs b/src-gen/Graphics/Vulkan/Ext/VK_IMG_format_pvrtc.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_IMG_format_pvrtc.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_IMG_format_pvrtc.hs
@@ -30,9 +30,9 @@
         pattern VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG,
         pattern VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG)
        where
-import           GHC.Ptr                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.Format (VkFormat (..))
+import GHC.Ptr                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.Enum.Format (VkFormat (..))
 
 pattern VK_IMG_FORMAT_PVRTC_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_16bit_storage.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_16bit_storage.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_16bit_storage.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_16bit_storage.hs
@@ -30,10 +30,10 @@
         pattern VK_KHR_16BIT_STORAGE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR)
        where
-import           GHC.Ptr                                     (Ptr (..))
-import           Graphics.Vulkan.Core_1_1                    (pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import GHC.Ptr                                     (Ptr (..))
+import Graphics.Vulkan.Core_1_1                    (pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.Struct.PhysicalDevice
 
 pattern VK_KHR_16BIT_STORAGE_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_android_surface.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_android_surface.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_android_surface.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_android_surface.hs
@@ -32,7 +32,7 @@
 
         -- ** Required extensions: 'VK_KHR_surface'.
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.PlatformAndroidKhr,
+        VkAndroidSurfaceCreateInfoKHR, VkAndroidSurfaceCreateInfoKHR',
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
@@ -47,27 +47,28 @@
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.PlatformAndroidKhr,
         VK_KHR_ANDROID_SURFACE_SPEC_VERSION,
         pattern VK_KHR_ANDROID_SURFACE_SPEC_VERSION,
         VK_KHR_ANDROID_SURFACE_EXTENSION_NAME,
         pattern VK_KHR_ANDROID_SURFACE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR)
        where
-import           GHC.Ptr                                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Defines
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.PlatformAndroidKhr
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
+import GHC.Ptr                                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Defines
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.PlatformAndroidKhr
+import System.IO.Unsafe                                  (unsafeDupablePerformIO)
 
 pattern VkCreateAndroidSurfaceKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_bind_memory2.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_bind_memory2.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_bind_memory2.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_bind_memory2.hs
@@ -40,17 +40,17 @@
         pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR,
         pattern VK_IMAGE_CREATE_ALIAS_BIT_KHR)
        where
-import           GHC.Ptr                                  (Ptr (..))
-import           Graphics.Vulkan.Core_1_1                 (pattern VK_IMAGE_CREATE_ALIAS_BIT,
-                                                           pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
-                                                           pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc             (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.Bind
+import GHC.Ptr                                  (Ptr (..))
+import Graphics.Vulkan.Core_1_1                 (pattern VK_IMAGE_CREATE_ALIAS_BIT,
+                                                 pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
+                                                 pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc             (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.Bind
 
 pattern VkBindBufferMemory2KHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_dedicated_allocation.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_dedicated_allocation.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_dedicated_allocation.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_dedicated_allocation.hs
@@ -31,11 +31,11 @@
         pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR,
         pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR)
        where
-import           GHC.Ptr                             (Ptr (..))
-import           Graphics.Vulkan.Core_1_1            (pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
-                                                      pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Struct.Memory
+import GHC.Ptr                             (Ptr (..))
+import Graphics.Vulkan.Core_1_1            (pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
+                                            pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.Struct.Memory
 
 pattern VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_descriptor_update_template.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_descriptor_update_template.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_descriptor_update_template.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_descriptor_update_template.hs
@@ -63,28 +63,28 @@
         -- ** Required extensions: 'VK_EXT_debug_report'.
         pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT)
        where
-import           GHC.Ptr                                           (Ptr (..))
-import           Graphics.Vulkan.Core_1_1                          (pattern VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
-                                                                    pattern VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO)
-import           Graphics.Vulkan.Ext.VK_EXT_debug_report           (pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT)
-import           Graphics.Vulkan.Ext.VK_KHR_push_descriptor        (HS_vkCmdPushDescriptorSetWithTemplateKHR,
-                                                                    PFN_vkCmdPushDescriptorSetWithTemplateKHR,
-                                                                    pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR,
-                                                                    pattern VkCmdPushDescriptorSetWithTemplateKHR)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.Descriptor
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.Pipeline
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.Descriptor
+import GHC.Ptr                                           (Ptr (..))
+import Graphics.Vulkan.Core_1_1                          (pattern VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
+                                                          pattern VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO)
+import Graphics.Vulkan.Ext.VK_EXT_debug_report           (pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT)
+import Graphics.Vulkan.Ext.VK_KHR_push_descriptor        (HS_vkCmdPushDescriptorSetWithTemplateKHR,
+                                                          PFN_vkCmdPushDescriptorSetWithTemplateKHR,
+                                                          pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR,
+                                                          pattern VkCmdPushDescriptorSetWithTemplateKHR)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.Descriptor
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.Pipeline
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.Descriptor
 
 pattern VkCreateDescriptorUpdateTemplateKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_device_group.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_device_group.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_device_group.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_device_group.hs
@@ -67,6 +67,8 @@
         pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR,
         pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
         -- ** Required extensions: 'VK_KHR_surface', 'VK_KHR_device_group_creation'.
+        VkDeviceGroupPresentCapabilitiesKHR,
+        VkDeviceGroupPresentCapabilitiesKHR',
         module Graphics.Vulkan.Types.Enum.Device,
         module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
@@ -81,21 +83,27 @@
         PFN_vkGetPhysicalDevicePresentRectanglesKHR,
         pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
         -- ** Required extensions: 'VK_KHR_swapchain', 'VK_KHR_device_group_creation'.
-        module Graphics.Vulkan.Types.Struct.AcquireNextImageInfoKHR,
+        VkAcquireNextImageInfoKHR, VkAcquireNextImageInfoKHR',
+        VkBindImageMemoryInfo, VkBindImageMemoryInfo',
+        VkBindImageMemorySwapchainInfoKHR,
+        VkBindImageMemorySwapchainInfoKHR',
         module Graphics.Vulkan.Types.Enum.Color,
         module Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR,
-        module Graphics.Vulkan.Types.Struct.Extent,
-        module Graphics.Vulkan.Types.Enum.Format,
-        module Graphics.Vulkan.Types.Enum.Image,
-        module Graphics.Vulkan.Types.Struct.Image,
-        module Graphics.Vulkan.Types.Struct.Present,
+        VkDeviceGroupPresentInfoKHR, VkDeviceGroupPresentInfoKHR',
+        VkDeviceGroupSwapchainCreateInfoKHR,
+        VkDeviceGroupSwapchainCreateInfoKHR', VkExtent2D, VkExtent2D',
+        VkExtent3D, VkExtent3D', module Graphics.Vulkan.Types.Enum.Format,
+        module Graphics.Vulkan.Types.Enum.Image, VkImageCreateInfo,
+        VkImageCreateInfo', VkImageSwapchainCreateInfoKHR,
+        VkImageSwapchainCreateInfoKHR', VkPresentInfoKHR,
+        VkPresentInfoKHR',
         module Graphics.Vulkan.Types.Enum.PresentModeKHR,
         module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
         module Graphics.Vulkan.Types.Enum.SharingMode,
         module Graphics.Vulkan.Types.Enum.Surface,
         module Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR,
-        module Graphics.Vulkan.Types.Struct.SwapchainC,
+        VkSwapchainCreateInfoKHR, VkSwapchainCreateInfoKHR',
         -- > #include "vk_platform.h"
         pattern VkAcquireNextImage2KHR, HS_vkAcquireNextImage2KHR,
         PFN_vkAcquireNextImage2KHR,
@@ -106,64 +114,73 @@
         pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
         pattern VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR)
        where
-import           GHC.Ptr                                              (Ptr (..))
-import           Graphics.Vulkan.Core_1_1                             (pattern VK_DEPENDENCY_DEVICE_GROUP_BIT,
-                                                                       pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
-                                                                       pattern VK_PIPELINE_CREATE_DISPATCH_BASE,
-                                                                       pattern VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
-                                                                       pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
-                                                                       pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
-                                                                       pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
-                                                                       pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
-                                                                       pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
-                                                                       pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
-                                                                       pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO)
-import           Graphics.Vulkan.Ext.VK_KHR_swapchain                 (HS_vkAcquireNextImage2KHR,
-                                                                       HS_vkGetDeviceGroupPresentCapabilitiesKHR,
-                                                                       HS_vkGetDeviceGroupSurfacePresentModesKHR,
-                                                                       HS_vkGetPhysicalDevicePresentRectanglesKHR,
-                                                                       PFN_vkAcquireNextImage2KHR,
-                                                                       PFN_vkGetDeviceGroupPresentCapabilitiesKHR,
-                                                                       PFN_vkGetDeviceGroupSurfacePresentModesKHR,
-                                                                       PFN_vkGetPhysicalDevicePresentRectanglesKHR,
-                                                                       pattern VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR,
-                                                                       pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
-                                                                       pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
-                                                                       pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR,
-                                                                       pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
-                                                                       pattern VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
-                                                                       pattern VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
-                                                                       pattern VkAcquireNextImage2KHR,
-                                                                       pattern VkGetDeviceGroupPresentCapabilitiesKHR,
-                                                                       pattern VkGetDeviceGroupSurfacePresentModesKHR,
-                                                                       pattern VkGetPhysicalDevicePresentRectanglesKHR)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                         (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.Color
-import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
-import           Graphics.Vulkan.Types.Enum.Device
-import           Graphics.Vulkan.Types.Enum.Format
-import           Graphics.Vulkan.Types.Enum.Image
-import           Graphics.Vulkan.Types.Enum.Memory
-import           Graphics.Vulkan.Types.Enum.PeerMemoryFeatureFlag
-import           Graphics.Vulkan.Types.Enum.PresentModeKHR
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.SharingMode
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.Surface
-import           Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.AcquireNextImageInfoKHR
-import           Graphics.Vulkan.Types.Struct.Bind
-import           Graphics.Vulkan.Types.Struct.Device
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.Image
-import           Graphics.Vulkan.Types.Struct.Memory
-import           Graphics.Vulkan.Types.Struct.Present
-import           Graphics.Vulkan.Types.Struct.SwapchainC
+import GHC.Ptr                                              (Ptr (..))
+import Graphics.Vulkan.Core_1_1                             (pattern VK_DEPENDENCY_DEVICE_GROUP_BIT,
+                                                             pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
+                                                             pattern VK_PIPELINE_CREATE_DISPATCH_BASE,
+                                                             pattern VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
+                                                             pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
+                                                             pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
+                                                             pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
+                                                             pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
+                                                             pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
+                                                             pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
+                                                             pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO)
+import Graphics.Vulkan.Ext.VK_KHR_swapchain                 (HS_vkAcquireNextImage2KHR,
+                                                             HS_vkGetDeviceGroupPresentCapabilitiesKHR,
+                                                             HS_vkGetDeviceGroupSurfacePresentModesKHR,
+                                                             HS_vkGetPhysicalDevicePresentRectanglesKHR,
+                                                             PFN_vkAcquireNextImage2KHR,
+                                                             PFN_vkGetDeviceGroupPresentCapabilitiesKHR,
+                                                             PFN_vkGetDeviceGroupSurfacePresentModesKHR,
+                                                             PFN_vkGetPhysicalDevicePresentRectanglesKHR,
+                                                             pattern VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR,
+                                                             pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
+                                                             pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
+                                                             pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR,
+                                                             pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
+                                                             pattern VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
+                                                             pattern VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
+                                                             pattern VkAcquireNextImage2KHR,
+                                                             pattern VkGetDeviceGroupPresentCapabilitiesKHR,
+                                                             pattern VkGetDeviceGroupSurfacePresentModesKHR,
+                                                             pattern VkGetPhysicalDevicePresentRectanglesKHR)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                         (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.Color
+import Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
+import Graphics.Vulkan.Types.Enum.Device
+import Graphics.Vulkan.Types.Enum.Format
+import Graphics.Vulkan.Types.Enum.Image
+import Graphics.Vulkan.Types.Enum.Memory
+import Graphics.Vulkan.Types.Enum.PeerMemoryFeatureFlag
+import Graphics.Vulkan.Types.Enum.PresentModeKHR
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.SharingMode
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.Surface
+import Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.AcquireNextImageInfoKHR (VkAcquireNextImageInfoKHR,
+                                                             VkAcquireNextImageInfoKHR')
+import Graphics.Vulkan.Types.Struct.Bind
+import Graphics.Vulkan.Types.Struct.Device
+import Graphics.Vulkan.Types.Struct.Extent                  (VkExtent2D,
+                                                             VkExtent2D',
+                                                             VkExtent3D,
+                                                             VkExtent3D')
+import Graphics.Vulkan.Types.Struct.Image                   (VkImageCreateInfo,
+                                                             VkImageCreateInfo',
+                                                             VkImageSwapchainCreateInfoKHR,
+                                                             VkImageSwapchainCreateInfoKHR')
+import Graphics.Vulkan.Types.Struct.Memory
+import Graphics.Vulkan.Types.Struct.Present                 (VkPresentInfoKHR,
+                                                             VkPresentInfoKHR')
+import Graphics.Vulkan.Types.Struct.SwapchainC              (VkSwapchainCreateInfoKHR,
+                                                             VkSwapchainCreateInfoKHR')
 
 pattern VkGetDeviceGroupPeerMemoryFeaturesKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_device_group_creation.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_device_group_creation.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_device_group_creation.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_device_group_creation.hs
@@ -43,19 +43,19 @@
         pattern VK_MAX_DEVICE_GROUP_SIZE_KHR,
         pattern VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR)
        where
-import           GHC.Ptr                                     (Ptr (..))
-import           Graphics.Vulkan.Constants                   (pattern VK_MAX_DEVICE_GROUP_SIZE_KHR)
-import           Graphics.Vulkan.Core_1_1                    (pattern VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
-                                                              pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
-                                                              pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.Device
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import GHC.Ptr                                     (Ptr (..))
+import Graphics.Vulkan.Constants                   (pattern VK_MAX_DEVICE_GROUP_SIZE_KHR)
+import Graphics.Vulkan.Core_1_1                    (pattern VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
+                                                    pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
+                                                    pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.Device
+import Graphics.Vulkan.Types.Struct.PhysicalDevice
 
 pattern VkEnumeratePhysicalDeviceGroupsKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_display.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_display.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_display.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_display.hs
@@ -31,11 +31,16 @@
         -- ** Required extensions: 'VK_KHR_surface'.
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.Display,
+        module Graphics.Vulkan.Types.Bitmasks, VkDisplayModeCreateInfoKHR,
+        VkDisplayModeCreateInfoKHR', VkDisplayModeParametersKHR,
+        VkDisplayModeParametersKHR', VkDisplayModePropertiesKHR,
+        VkDisplayModePropertiesKHR',
         module Graphics.Vulkan.Types.Enum.Display,
-        module Graphics.Vulkan.Types.Struct.Extent,
-        module Graphics.Vulkan.Types.Struct.Offset,
+        VkDisplayPlaneCapabilitiesKHR, VkDisplayPlaneCapabilitiesKHR',
+        VkDisplayPlanePropertiesKHR, VkDisplayPlanePropertiesKHR',
+        VkDisplayPropertiesKHR, VkDisplayPropertiesKHR',
+        VkDisplaySurfaceCreateInfoKHR, VkDisplaySurfaceCreateInfoKHR',
+        VkExtent2D, VkExtent2D', VkOffset2D, VkOffset2D',
         module Graphics.Vulkan.Types.Enum.StructureType,
         module Graphics.Vulkan.Types.Enum.Surface,
         -- > #include "vk_platform.h"
@@ -88,6 +93,9 @@
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.Display,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Struct.Offset,
         VK_KHR_DISPLAY_SPEC_VERSION, pattern VK_KHR_DISPLAY_SPEC_VERSION,
         VK_KHR_DISPLAY_EXTENSION_NAME,
         pattern VK_KHR_DISPLAY_EXTENSION_NAME,
@@ -96,25 +104,25 @@
         pattern VK_OBJECT_TYPE_DISPLAY_KHR,
         pattern VK_OBJECT_TYPE_DISPLAY_MODE_KHR)
        where
-import           GHC.Ptr                                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.Display
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.Object                 (VkObjectType (..))
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.Surface
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.Display
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.Offset
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
+import GHC.Ptr                                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.Display
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.Object                 (VkObjectType (..))
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.Surface
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.Display
+import Graphics.Vulkan.Types.Struct.Extent
+import Graphics.Vulkan.Types.Struct.Offset
+import System.IO.Unsafe                                  (unsafeDupablePerformIO)
 
 pattern VkGetPhysicalDeviceDisplayPropertiesKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_display_swapchain.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_display_swapchain.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_display_swapchain.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_display_swapchain.hs
@@ -29,13 +29,10 @@
         --
 
         -- ** Required extensions: 'VK_KHR_swapchain', 'VK_KHR_display'.
-        module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.Display,
-        module Graphics.Vulkan.Types.Struct.Extent,
-        module Graphics.Vulkan.Types.Struct.Offset,
-        module Graphics.Vulkan.Types.Struct.Present,
-        module Graphics.Vulkan.Types.Struct.Rect,
-        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.BaseTypes, VkDisplayPresentInfoKHR,
+        VkDisplayPresentInfoKHR', VkExtent2D, VkExtent2D', VkOffset2D,
+        VkOffset2D', VkPresentInfoKHR, VkPresentInfoKHR', VkRect2D,
+        VkRect2D', module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VkCreateSharedSwapchainsKHR, pattern VkCreateSharedSwapchainsKHR,
@@ -55,6 +52,7 @@
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.Extent,
         module Graphics.Vulkan.Types.Struct.SwapchainC,
         VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION,
         pattern VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION,
@@ -63,32 +61,35 @@
         pattern VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR,
         pattern VK_ERROR_INCOMPATIBLE_DISPLAY_KHR)
        where
-import           GHC.Ptr                                            (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.Color
-import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
-import           Graphics.Vulkan.Types.Enum.Format
-import           Graphics.Vulkan.Types.Enum.Image
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.PresentModeKHR
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.SharingMode
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.Surface
-import           Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.Display
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.Offset
-import           Graphics.Vulkan.Types.Struct.Present
-import           Graphics.Vulkan.Types.Struct.Rect
-import           Graphics.Vulkan.Types.Struct.SwapchainC
-import           System.IO.Unsafe                                   (unsafeDupablePerformIO)
+import GHC.Ptr                                            (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.Color
+import Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
+import Graphics.Vulkan.Types.Enum.Format
+import Graphics.Vulkan.Types.Enum.Image
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.PresentModeKHR
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.SharingMode
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.Surface
+import Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.Display               (VkDisplayPresentInfoKHR,
+                                                           VkDisplayPresentInfoKHR')
+import Graphics.Vulkan.Types.Struct.Extent
+import Graphics.Vulkan.Types.Struct.Offset                (VkOffset2D,
+                                                           VkOffset2D')
+import Graphics.Vulkan.Types.Struct.Present               (VkPresentInfoKHR,
+                                                           VkPresentInfoKHR')
+import Graphics.Vulkan.Types.Struct.Rect                  (VkRect2D, VkRect2D')
+import Graphics.Vulkan.Types.Struct.SwapchainC
+import System.IO.Unsafe                                   (unsafeDupablePerformIO)
 
 pattern VkCreateSharedSwapchainsKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_draw_indirect_count.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_draw_indirect_count.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_draw_indirect_count.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_draw_indirect_count.hs
@@ -36,11 +36,11 @@
         VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME,
         pattern VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME)
        where
-import           GHC.Ptr                         (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc    (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Handles
+import GHC.Ptr                         (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc    (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Handles
 
 pattern VkCmdDrawIndirectCountKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence.hs
@@ -33,12 +33,12 @@
         pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR,
         pattern VK_FENCE_IMPORT_TEMPORARY_BIT_KHR)
        where
-import           GHC.Ptr                             (Ptr (..))
-import           Graphics.Vulkan.Core_1_1            (pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.Fence
-import           Graphics.Vulkan.Types.Struct.Export
+import GHC.Ptr                             (Ptr (..))
+import Graphics.Vulkan.Core_1_1            (pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.Fence
+import Graphics.Vulkan.Types.Struct.Export
 
 pattern VK_KHR_EXTERNAL_FENCE_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_capabilities.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_capabilities.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_capabilities.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_capabilities.hs
@@ -54,19 +54,19 @@
         pattern VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR,
         pattern VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR)
        where
-import           GHC.Ptr                                     (Ptr (..))
-import           Graphics.Vulkan.Constants                   (pattern VK_LUID_SIZE_KHR)
-import           Graphics.Vulkan.Core_1_1                    (pattern VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
-                                                              pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.External
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.External
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import GHC.Ptr                                     (Ptr (..))
+import Graphics.Vulkan.Constants                   (pattern VK_LUID_SIZE_KHR)
+import Graphics.Vulkan.Core_1_1                    (pattern VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
+                                                    pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.External
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.External
+import Graphics.Vulkan.Types.Struct.PhysicalDevice
 
 pattern VkGetPhysicalDeviceExternalFencePropertiesKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_fd.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_fd.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_fd.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_fd.hs
@@ -28,11 +28,10 @@
 
         -- ** Required extensions: 'VK_KHR_external_fence'.
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.External,
-        module Graphics.Vulkan.Types.Struct.Fence,
-        module Graphics.Vulkan.Types.Enum.Fence,
-        module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.Import,
+        module Graphics.Vulkan.Types.Enum.External, VkFenceGetFdInfoKHR,
+        VkFenceGetFdInfoKHR', module Graphics.Vulkan.Types.Enum.Fence,
+        module Graphics.Vulkan.Types.BaseTypes, VkImportFenceFdInfoKHR,
+        VkImportFenceFdInfoKHR',
         module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VkImportFenceFdKHR, pattern VkImportFenceFdKHR,
@@ -40,6 +39,8 @@
         pattern VkGetFenceFdKHR, HS_vkGetFenceFdKHR, PFN_vkGetFenceFdKHR,
         module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
+        module Graphics.Vulkan.Types.Struct.Fence,
+        module Graphics.Vulkan.Types.Struct.Import,
         VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION,
         pattern VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION,
         VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME,
@@ -47,17 +48,17 @@
         pattern VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR,
         pattern VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR)
        where
-import           GHC.Ptr                                  (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc             (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.External
-import           Graphics.Vulkan.Types.Enum.Fence
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.Fence
-import           Graphics.Vulkan.Types.Struct.Import
+import GHC.Ptr                                  (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc             (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.External
+import Graphics.Vulkan.Types.Enum.Fence
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.Fence
+import Graphics.Vulkan.Types.Struct.Import
 
 pattern VkImportFenceFdKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_win32.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_win32.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_win32.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_win32.hs
@@ -29,11 +29,13 @@
         --
 
         -- ** Required extensions: 'VK_KHR_external_fence'.
-        module Graphics.Vulkan.Types.Struct.PlatformWin32Khr,
+        VkExportFenceWin32HandleInfoKHR, VkExportFenceWin32HandleInfoKHR',
         module Graphics.Vulkan.Types.Enum.External,
-        module Graphics.Vulkan.Types.Enum.Fence,
-        module Graphics.Vulkan.Types.Struct.Fence,
+        module Graphics.Vulkan.Types.Enum.Fence, VkFenceCreateInfo,
+        VkFenceCreateInfo', VkFenceGetWin32HandleInfoKHR,
+        VkFenceGetWin32HandleInfoKHR',
         module Graphics.Vulkan.Types.BaseTypes,
+        VkImportFenceWin32HandleInfoKHR, VkImportFenceWin32HandleInfoKHR',
         module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VkImportFenceWin32HandleKHR, pattern VkImportFenceWin32HandleKHR,
@@ -44,6 +46,7 @@
         module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Include,
+        module Graphics.Vulkan.Types.Struct.PlatformWin32Khr,
         VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION,
         pattern VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION,
         VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME,
@@ -52,18 +55,19 @@
         pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR,
         pattern VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR)
        where
-import           GHC.Ptr                                       (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                  (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.External
-import           Graphics.Vulkan.Types.Enum.Fence
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Include
-import           Graphics.Vulkan.Types.Struct.Fence
-import           Graphics.Vulkan.Types.Struct.PlatformWin32Khr
+import GHC.Ptr                                       (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                  (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.External
+import Graphics.Vulkan.Types.Enum.Fence
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Include
+import Graphics.Vulkan.Types.Struct.Fence            (VkFenceCreateInfo,
+                                                      VkFenceCreateInfo')
+import Graphics.Vulkan.Types.Struct.PlatformWin32Khr
 
 pattern VkImportFenceWin32HandleKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory.hs
@@ -35,15 +35,15 @@
         pattern VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR,
         pattern VK_QUEUE_FAMILY_EXTERNAL_KHR)
        where
-import           GHC.Ptr                               (Ptr (..))
-import           Graphics.Vulkan.Constants             (pattern VK_QUEUE_FAMILY_EXTERNAL_KHR)
-import           Graphics.Vulkan.Core_1_1              (pattern VK_ERROR_INVALID_EXTERNAL_HANDLE,
-                                                        pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
-                                                        pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
-                                                        pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Struct.Export
-import           Graphics.Vulkan.Types.Struct.External
+import GHC.Ptr                               (Ptr (..))
+import Graphics.Vulkan.Constants             (pattern VK_QUEUE_FAMILY_EXTERNAL_KHR)
+import Graphics.Vulkan.Core_1_1              (pattern VK_ERROR_INVALID_EXTERNAL_HANDLE,
+                                              pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
+                                              pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
+                                              pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.Struct.Export
+import Graphics.Vulkan.Types.Struct.External
 
 pattern VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_capabilities.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_capabilities.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_capabilities.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_capabilities.hs
@@ -62,23 +62,23 @@
         pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR,
         pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR)
        where
-import           GHC.Ptr                                     (Ptr (..))
-import           Graphics.Vulkan.Constants                   (pattern VK_LUID_SIZE_KHR)
-import           Graphics.Vulkan.Core_1_1                    (pattern VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
-                                                              pattern VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
-                                                              pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
-                                                              pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
-                                                              pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.Buffer
-import           Graphics.Vulkan.Types.Enum.External
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.External
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import GHC.Ptr                                     (Ptr (..))
+import Graphics.Vulkan.Constants                   (pattern VK_LUID_SIZE_KHR)
+import Graphics.Vulkan.Core_1_1                    (pattern VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
+                                                    pattern VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
+                                                    pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
+                                                    pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
+                                                    pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.Buffer
+import Graphics.Vulkan.Types.Enum.External
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.External
+import Graphics.Vulkan.Types.Struct.PhysicalDevice
 
 pattern VkGetPhysicalDeviceExternalBufferPropertiesKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_fd.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_fd.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_fd.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_fd.hs
@@ -31,8 +31,10 @@
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.External,
-        module Graphics.Vulkan.Types.Struct.Import,
-        module Graphics.Vulkan.Types.Struct.Memory,
+        VkImportMemoryFdInfoKHR, VkImportMemoryFdInfoKHR',
+        VkMemoryAllocateInfo, VkMemoryAllocateInfo',
+        VkMemoryFdPropertiesKHR, VkMemoryFdPropertiesKHR',
+        VkMemoryGetFdInfoKHR, VkMemoryGetFdInfoKHR',
         module Graphics.Vulkan.Types.Enum.StructureType, -- > #include "vk_platform.h"
                                                          VkGetMemoryFdKHR,
         pattern VkGetMemoryFdKHR, HS_vkGetMemoryFdKHR,
@@ -41,6 +43,7 @@
         PFN_vkGetMemoryFdPropertiesKHR,
         module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
+        module Graphics.Vulkan.Types.Struct.Memory,
         VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION,
         pattern VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION,
         VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME,
@@ -49,16 +52,17 @@
         pattern VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR,
         pattern VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR)
        where
-import           GHC.Ptr                                  (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc             (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.External
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.Import
-import           Graphics.Vulkan.Types.Struct.Memory
+import GHC.Ptr                                  (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc             (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.External
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.Import      (VkImportMemoryFdInfoKHR,
+                                                 VkImportMemoryFdInfoKHR')
+import Graphics.Vulkan.Types.Struct.Memory
 
 pattern VkGetMemoryFdKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_win32.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_win32.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_win32.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_win32.hs
@@ -31,9 +31,14 @@
 
         -- ** Required extensions: 'VK_KHR_external_memory'.
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.PlatformWin32Khr,
+        VkExportMemoryWin32HandleInfoKHR,
+        VkExportMemoryWin32HandleInfoKHR',
         module Graphics.Vulkan.Types.Enum.External,
-        module Graphics.Vulkan.Types.Struct.Memory,
+        VkImportMemoryWin32HandleInfoKHR,
+        VkImportMemoryWin32HandleInfoKHR', VkMemoryAllocateInfo,
+        VkMemoryAllocateInfo', VkMemoryGetWin32HandleInfoKHR,
+        VkMemoryGetWin32HandleInfoKHR', VkMemoryWin32HandlePropertiesKHR,
+        VkMemoryWin32HandlePropertiesKHR',
         module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VkGetMemoryWin32HandleKHR, pattern VkGetMemoryWin32HandleKHR,
@@ -45,6 +50,7 @@
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
+        module Graphics.Vulkan.Types.Struct.PlatformWin32Khr,
         VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION,
         pattern VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION,
         VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME,
@@ -54,17 +60,18 @@
         pattern VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR,
         pattern VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR)
        where
-import           GHC.Ptr                                       (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                  (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.External
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Include                 (HANDLE)
-import           Graphics.Vulkan.Types.Struct.Memory
-import           Graphics.Vulkan.Types.Struct.PlatformWin32Khr
+import GHC.Ptr                                       (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                  (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.External
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Include                 (HANDLE)
+import Graphics.Vulkan.Types.Struct.Memory           (VkMemoryAllocateInfo,
+                                                      VkMemoryAllocateInfo')
+import Graphics.Vulkan.Types.Struct.PlatformWin32Khr
 
 pattern VkGetMemoryWin32HandleKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore.hs
@@ -33,12 +33,12 @@
         pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR,
         pattern VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR)
        where
-import           GHC.Ptr                                        (Ptr (..))
-import           Graphics.Vulkan.Core_1_1                       (pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.SemaphoreImportFlag
-import           Graphics.Vulkan.Types.Struct.Export
+import GHC.Ptr                                        (Ptr (..))
+import Graphics.Vulkan.Core_1_1                       (pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.SemaphoreImportFlag
+import Graphics.Vulkan.Types.Struct.Export
 
 pattern VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION :: (Num a, Eq a) =>
         a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_capabilities.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_capabilities.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_capabilities.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_capabilities.hs
@@ -55,19 +55,19 @@
         pattern VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR,
         pattern VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR)
        where
-import           GHC.Ptr                                     (Ptr (..))
-import           Graphics.Vulkan.Constants                   (pattern VK_LUID_SIZE_KHR)
-import           Graphics.Vulkan.Core_1_1                    (pattern VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
-                                                              pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.External
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.External
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import GHC.Ptr                                     (Ptr (..))
+import Graphics.Vulkan.Constants                   (pattern VK_LUID_SIZE_KHR)
+import Graphics.Vulkan.Core_1_1                    (pattern VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
+                                                    pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.External
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.External
+import Graphics.Vulkan.Types.Struct.PhysicalDevice
 
 pattern VkGetPhysicalDeviceExternalSemaphorePropertiesKHR ::
         CString
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_fd.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_fd.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_fd.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_fd.hs
@@ -29,9 +29,9 @@
         -- ** Required extensions: 'VK_KHR_external_semaphore'.
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.Enum.External,
-        module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.Import,
-        module Graphics.Vulkan.Types.Struct.Semaphore,
+        module Graphics.Vulkan.Types.BaseTypes, VkImportSemaphoreFdInfoKHR,
+        VkImportSemaphoreFdInfoKHR', VkSemaphoreGetFdInfoKHR,
+        VkSemaphoreGetFdInfoKHR',
         module Graphics.Vulkan.Types.Enum.SemaphoreImportFlag,
         module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
@@ -41,6 +41,8 @@
         HS_vkGetSemaphoreFdKHR, PFN_vkGetSemaphoreFdKHR,
         module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
+        module Graphics.Vulkan.Types.Struct.Import,
+        module Graphics.Vulkan.Types.Struct.Semaphore,
         VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION,
         pattern VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION,
         VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME,
@@ -48,17 +50,17 @@
         pattern VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR,
         pattern VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR)
        where
-import           GHC.Ptr                                        (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                   (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.External
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.SemaphoreImportFlag
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.Import
-import           Graphics.Vulkan.Types.Struct.Semaphore
+import GHC.Ptr                                        (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                   (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.External
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.SemaphoreImportFlag
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.Import
+import Graphics.Vulkan.Types.Struct.Semaphore
 
 pattern VkImportSemaphoreFdKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_win32.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_win32.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_win32.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_win32.hs
@@ -29,17 +29,21 @@
         --
 
         -- ** Required extensions: 'VK_KHR_external_semaphore'.
-        module Graphics.Vulkan.Types.Struct.PlatformWin32Khr,
+        VkD3D12FenceSubmitInfoKHR, VkD3D12FenceSubmitInfoKHR',
+        VkExportSemaphoreWin32HandleInfoKHR,
+        VkExportSemaphoreWin32HandleInfoKHR',
         module Graphics.Vulkan.Types.Enum.External,
         module Graphics.Vulkan.Types.BaseTypes,
+        VkImportSemaphoreWin32HandleInfoKHR,
+        VkImportSemaphoreWin32HandleInfoKHR',
         module Graphics.Vulkan.Types.Enum.Pipeline,
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.Semaphore,
+        module Graphics.Vulkan.Types.Bitmasks, VkSemaphoreCreateInfo,
+        VkSemaphoreCreateInfo', VkSemaphoreGetWin32HandleInfoKHR,
+        VkSemaphoreGetWin32HandleInfoKHR',
         module Graphics.Vulkan.Types.Enum.SemaphoreImportFlag,
-        module Graphics.Vulkan.Types.Enum.StructureType,
-        module Graphics.Vulkan.Types.Struct.SubmitInfo,
-        -- > #include "vk_platform.h"
-        VkImportSemaphoreWin32HandleKHR,
+        module Graphics.Vulkan.Types.Enum.StructureType, VkSubmitInfo,
+        VkSubmitInfo', -- > #include "vk_platform.h"
+                       VkImportSemaphoreWin32HandleKHR,
         pattern VkImportSemaphoreWin32HandleKHR,
         HS_vkImportSemaphoreWin32HandleKHR,
         PFN_vkImportSemaphoreWin32HandleKHR, VkGetSemaphoreWin32HandleKHR,
@@ -49,6 +53,7 @@
         module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Include,
+        module Graphics.Vulkan.Types.Struct.PlatformWin32Khr,
         VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION,
         pattern VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION,
         VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME,
@@ -58,21 +63,23 @@
         pattern VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR,
         pattern VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR)
        where
-import           GHC.Ptr                                        (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                   (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.External
-import           Graphics.Vulkan.Types.Enum.Pipeline
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.SemaphoreImportFlag
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Include
-import           Graphics.Vulkan.Types.Struct.PlatformWin32Khr
-import           Graphics.Vulkan.Types.Struct.Semaphore
-import           Graphics.Vulkan.Types.Struct.SubmitInfo
+import GHC.Ptr                                        (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                   (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.External
+import Graphics.Vulkan.Types.Enum.Pipeline
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.SemaphoreImportFlag
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Include
+import Graphics.Vulkan.Types.Struct.PlatformWin32Khr
+import Graphics.Vulkan.Types.Struct.Semaphore         (VkSemaphoreCreateInfo,
+                                                       VkSemaphoreCreateInfo')
+import Graphics.Vulkan.Types.Struct.SubmitInfo        (VkSubmitInfo,
+                                                       VkSubmitInfo')
 
 pattern VkImportSemaphoreWin32HandleKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_display_properties2.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_display_properties2.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_display_properties2.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_display_properties2.hs
@@ -28,11 +28,19 @@
 
         -- ** Required extensions: 'VK_KHR_display'.
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.Display,
+        module Graphics.Vulkan.Types.BaseTypes, VkDisplayModeParametersKHR,
+        VkDisplayModeParametersKHR', VkDisplayModeProperties2KHR,
+        VkDisplayModeProperties2KHR', VkDisplayModePropertiesKHR,
+        VkDisplayModePropertiesKHR',
         module Graphics.Vulkan.Types.Enum.Display,
-        module Graphics.Vulkan.Types.Struct.Extent,
-        module Graphics.Vulkan.Types.Struct.Offset,
+        VkDisplayPlaneCapabilities2KHR, VkDisplayPlaneCapabilities2KHR',
+        VkDisplayPlaneCapabilitiesKHR, VkDisplayPlaneCapabilitiesKHR',
+        VkDisplayPlaneInfo2KHR, VkDisplayPlaneInfo2KHR',
+        VkDisplayPlaneProperties2KHR, VkDisplayPlaneProperties2KHR',
+        VkDisplayPlanePropertiesKHR, VkDisplayPlanePropertiesKHR',
+        VkDisplayProperties2KHR, VkDisplayProperties2KHR',
+        VkDisplayPropertiesKHR, VkDisplayPropertiesKHR', VkExtent2D,
+        VkExtent2D', VkOffset2D, VkOffset2D',
         module Graphics.Vulkan.Types.Enum.StructureType,
         module Graphics.Vulkan.Types.Enum.Surface,
         -- > #include "vk_platform.h"
@@ -54,6 +62,9 @@
         PFN_vkGetDisplayPlaneCapabilities2KHR,
         module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
+        module Graphics.Vulkan.Types.Struct.Display,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Struct.Offset,
         VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION,
         pattern VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION,
         VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME,
@@ -64,18 +75,18 @@
         pattern VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR,
         pattern VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR)
        where
-import           GHC.Ptr                                  (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc             (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.Display
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.Surface
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.Display
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.Offset
+import GHC.Ptr                                  (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc             (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.Display
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.Surface
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.Display
+import Graphics.Vulkan.Types.Struct.Extent
+import Graphics.Vulkan.Types.Struct.Offset
 
 pattern VkGetPhysicalDeviceDisplayProperties2KHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_memory_requirements2.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_memory_requirements2.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_memory_requirements2.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_memory_requirements2.hs
@@ -56,24 +56,24 @@
         pattern VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR,
         pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR)
        where
-import           GHC.Ptr                                  (Ptr (..))
-import           Graphics.Vulkan.Core_1_1                 (pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
-                                                           pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
-                                                           pattern VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
-                                                           pattern VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
-                                                           pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc             (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.Image
-import           Graphics.Vulkan.Types.Enum.Sparse
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.Buffer
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.Image
-import           Graphics.Vulkan.Types.Struct.Memory
-import           Graphics.Vulkan.Types.Struct.Sparse
+import GHC.Ptr                                  (Ptr (..))
+import Graphics.Vulkan.Core_1_1                 (pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
+                                                 pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
+                                                 pattern VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
+                                                 pattern VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
+                                                 pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc             (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.Image
+import Graphics.Vulkan.Types.Enum.Sparse
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.Buffer
+import Graphics.Vulkan.Types.Struct.Extent
+import Graphics.Vulkan.Types.Struct.Image
+import Graphics.Vulkan.Types.Struct.Memory
+import Graphics.Vulkan.Types.Struct.Sparse
 
 pattern VkGetImageMemoryRequirements2KHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_physical_device_properties2.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_physical_device_properties2.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_physical_device_properties2.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_physical_device_properties2.hs
@@ -88,40 +88,40 @@
         pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR,
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR)
        where
-import           GHC.Ptr                                             (Ptr (..))
-import           Graphics.Vulkan.Core_1_1                            (pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
-                                                                      pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
-                                                                      pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
-                                                                      pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
-                                                                      pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
-                                                                      pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
-                                                                      pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
-                                                                      pattern VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
-                                                                      pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                        (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.Device
-import           Graphics.Vulkan.Types.Enum.Format
-import           Graphics.Vulkan.Types.Enum.Image
-import           Graphics.Vulkan.Types.Enum.Memory
-import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.Queue
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.Sparse
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.Device
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.FormatProperties
-import           Graphics.Vulkan.Types.Struct.Image
-import           Graphics.Vulkan.Types.Struct.Memory
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
-import           Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures
-import           Graphics.Vulkan.Types.Struct.QueueFamilyProperties
-import           Graphics.Vulkan.Types.Struct.Sparse
+import GHC.Ptr                                             (Ptr (..))
+import Graphics.Vulkan.Core_1_1                            (pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
+                                                            pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
+                                                            pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
+                                                            pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
+                                                            pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
+                                                            pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
+                                                            pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
+                                                            pattern VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
+                                                            pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                        (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.Device
+import Graphics.Vulkan.Types.Enum.Format
+import Graphics.Vulkan.Types.Enum.Image
+import Graphics.Vulkan.Types.Enum.Memory
+import Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import Graphics.Vulkan.Types.Enum.Queue
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.Sparse
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.Device
+import Graphics.Vulkan.Types.Struct.Extent
+import Graphics.Vulkan.Types.Struct.FormatProperties
+import Graphics.Vulkan.Types.Struct.Image
+import Graphics.Vulkan.Types.Struct.Memory
+import Graphics.Vulkan.Types.Struct.PhysicalDevice
+import Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures
+import Graphics.Vulkan.Types.Struct.QueueFamilyProperties
+import Graphics.Vulkan.Types.Struct.Sparse
 
 pattern VkGetPhysicalDeviceFeatures2KHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_surface_capabilities2.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_surface_capabilities2.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_surface_capabilities2.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_surface_capabilities2.hs
@@ -29,14 +29,15 @@
         -- ** Required extensions: 'VK_KHR_surface'.
         module Graphics.Vulkan.Types.Enum.Color,
         module Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR,
-        module Graphics.Vulkan.Types.Struct.Extent,
-        module Graphics.Vulkan.Types.BaseTypes,
+        VkExtent2D, VkExtent2D', module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.Format,
         module Graphics.Vulkan.Types.Enum.Image,
-        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        VkPhysicalDeviceSurfaceInfo2KHR, VkPhysicalDeviceSurfaceInfo2KHR',
         module Graphics.Vulkan.Types.Enum.StructureType,
-        module Graphics.Vulkan.Types.Struct.Surface,
-        module Graphics.Vulkan.Types.Enum.Surface,
+        VkSurfaceCapabilities2KHR, VkSurfaceCapabilities2KHR',
+        VkSurfaceCapabilitiesKHR, VkSurfaceCapabilitiesKHR',
+        VkSurfaceFormat2KHR, VkSurfaceFormat2KHR', VkSurfaceFormatKHR,
+        VkSurfaceFormatKHR', module Graphics.Vulkan.Types.Enum.Surface,
         -- > #include "vk_platform.h"
         VkGetPhysicalDeviceSurfaceCapabilities2KHR,
         pattern VkGetPhysicalDeviceSurfaceCapabilities2KHR,
@@ -49,6 +50,9 @@
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Struct.Surface,
         VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION,
         pattern VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION,
         VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME,
@@ -57,21 +61,21 @@
         pattern VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR,
         pattern VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR)
        where
-import           GHC.Ptr                                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.Color
-import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
-import           Graphics.Vulkan.Types.Enum.Format
-import           Graphics.Vulkan.Types.Enum.Image
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.Surface
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
-import           Graphics.Vulkan.Types.Struct.Surface
+import GHC.Ptr                                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.Color
+import Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
+import Graphics.Vulkan.Types.Enum.Format
+import Graphics.Vulkan.Types.Enum.Image
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.Surface
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.Extent
+import Graphics.Vulkan.Types.Struct.PhysicalDevice
+import Graphics.Vulkan.Types.Struct.Surface
 
 pattern VkGetPhysicalDeviceSurfaceCapabilities2KHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_image_format_list.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_image_format_list.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_image_format_list.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_image_format_list.hs
@@ -17,11 +17,11 @@
         -- type: @device@
         --
         -- Extension number: @148@
-        module Graphics.Vulkan.Types.Struct.Extent,
-        module Graphics.Vulkan.Types.BaseTypes,
+        VkExtent3D, VkExtent3D', module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.Format,
-        module Graphics.Vulkan.Types.Enum.Image,
-        module Graphics.Vulkan.Types.Struct.Image,
+        module Graphics.Vulkan.Types.Enum.Image, VkImageCreateInfo,
+        VkImageCreateInfo', VkImageFormatListCreateInfoKHR,
+        VkImageFormatListCreateInfoKHR',
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
         module Graphics.Vulkan.Types.Enum.SharingMode,
         module Graphics.Vulkan.Types.Enum.StructureType,
@@ -32,16 +32,19 @@
         pattern VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR)
        where
-import           GHC.Ptr                                     (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.Format
-import           Graphics.Vulkan.Types.Enum.Image
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.SharingMode
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.Image
+import GHC.Ptr                                     (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.Format
+import Graphics.Vulkan.Types.Enum.Image
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.SharingMode
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Struct.Extent         (VkExtent3D, VkExtent3D')
+import Graphics.Vulkan.Types.Struct.Image          (VkImageCreateInfo,
+                                                    VkImageCreateInfo',
+                                                    VkImageFormatListCreateInfoKHR,
+                                                    VkImageFormatListCreateInfoKHR')
 
 pattern VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_incremental_present.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_incremental_present.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_incremental_present.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_incremental_present.hs
@@ -22,10 +22,10 @@
         --
 
         -- ** Required extensions: 'VK_KHR_swapchain'.
-        module Graphics.Vulkan.Types.Struct.Extent,
-        module Graphics.Vulkan.Types.Struct.Offset,
-        module Graphics.Vulkan.Types.Struct.Present,
-        module Graphics.Vulkan.Types.Struct.Rect,
+        VkExtent2D, VkExtent2D', VkOffset2D, VkOffset2D',
+        VkPresentInfoKHR, VkPresentInfoKHR', VkPresentRegionKHR,
+        VkPresentRegionKHR', VkPresentRegionsKHR, VkPresentRegionsKHR',
+        VkRectLayerKHR, VkRectLayerKHR',
         module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
@@ -35,14 +35,20 @@
         pattern VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR)
        where
-import           GHC.Ptr                                  (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.Offset
-import           Graphics.Vulkan.Types.Struct.Present
-import           Graphics.Vulkan.Types.Struct.Rect
+import GHC.Ptr                                  (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Struct.Extent      (VkExtent2D, VkExtent2D')
+import Graphics.Vulkan.Types.Struct.Offset      (VkOffset2D, VkOffset2D')
+import Graphics.Vulkan.Types.Struct.Present     (VkPresentInfoKHR,
+                                                 VkPresentInfoKHR',
+                                                 VkPresentRegionKHR,
+                                                 VkPresentRegionKHR',
+                                                 VkPresentRegionsKHR,
+                                                 VkPresentRegionsKHR')
+import Graphics.Vulkan.Types.Struct.Rect        (VkRectLayerKHR,
+                                                 VkRectLayerKHR')
 
 pattern VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION :: (Num a, Eq a) =>
         a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance1.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance1.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance1.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance1.hs
@@ -38,16 +38,15 @@
         pattern VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,
         pattern VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR)
        where
-import           GHC.Ptr                         (Ptr (..))
-import           Graphics.Vulkan.Core_1_1        (pattern VK_ERROR_OUT_OF_POOL_MEMORY,
-                                                  pattern VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
-                                                  pattern VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
-                                                  pattern VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc    (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Handles
+import GHC.Ptr                         (Ptr (..))
+import Graphics.Vulkan.Core_1_1        (pattern VK_ERROR_OUT_OF_POOL_MEMORY, pattern VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
+                                        pattern VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
+                                        pattern VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc    (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Handles
 
 pattern VkTrimCommandPoolKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance2.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance2.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance2.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance2.hs
@@ -42,23 +42,23 @@
         pattern VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR,
         pattern VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR)
        where
-import           GHC.Ptr                                                     (Ptr (..))
-import           Graphics.Vulkan.Core_1_1                                    (pattern VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
-                                                                              pattern VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
-                                                                              pattern VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
-                                                                              pattern VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
-                                                                              pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
-                                                                              pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
-                                                                              pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
-                                                                              pattern VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.PointClippingBehavior
-import           Graphics.Vulkan.Types.Enum.TessellationDomainOrigin
-import           Graphics.Vulkan.Types.Struct.Image
-import           Graphics.Vulkan.Types.Struct.InputAttachmentAspectReference
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
-import           Graphics.Vulkan.Types.Struct.Pipeline
-import           Graphics.Vulkan.Types.Struct.RenderPass
+import GHC.Ptr                                                     (Ptr (..))
+import Graphics.Vulkan.Core_1_1                                    (pattern VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
+                                                                    pattern VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
+                                                                    pattern VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
+                                                                    pattern VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
+                                                                    pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
+                                                                    pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
+                                                                    pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
+                                                                    pattern VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.Enum.PointClippingBehavior
+import Graphics.Vulkan.Types.Enum.TessellationDomainOrigin
+import Graphics.Vulkan.Types.Struct.Image
+import Graphics.Vulkan.Types.Struct.InputAttachmentAspectReference
+import Graphics.Vulkan.Types.Struct.PhysicalDevice
+import Graphics.Vulkan.Types.Struct.Pipeline
+import Graphics.Vulkan.Types.Struct.RenderPass
 
 pattern VK_KHR_MAINTENANCE2_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance3.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance3.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance3.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance3.hs
@@ -47,18 +47,18 @@
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR,
         pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR)
        where
-import           GHC.Ptr                                     (Ptr (..))
-import           Graphics.Vulkan.Core_1_1                    (pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
-                                                              pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.Descriptor
-import           Graphics.Vulkan.Types.Enum.Shader
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.Descriptor
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import GHC.Ptr                                     (Ptr (..))
+import Graphics.Vulkan.Core_1_1                    (pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
+                                                    pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.Descriptor
+import Graphics.Vulkan.Types.Enum.Shader
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.Descriptor
+import Graphics.Vulkan.Types.Struct.PhysicalDevice
 
 pattern VkGetDescriptorSetLayoutSupportKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_mir_surface.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_mir_surface.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_mir_surface.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_mir_surface.hs
@@ -32,8 +32,8 @@
 
         -- ** Required extensions: 'VK_KHR_surface'.
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.PlatformMirKhr,
+        module Graphics.Vulkan.Types.Bitmasks, VkMirSurfaceCreateInfoKHR,
+        VkMirSurfaceCreateInfoKHR',
         module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VkCreateMirSurfaceKHR, pattern VkCreateMirSurfaceKHR,
@@ -55,27 +55,28 @@
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Include,
         module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.PlatformMirKhr,
         VK_KHR_MIR_SURFACE_SPEC_VERSION,
         pattern VK_KHR_MIR_SURFACE_SPEC_VERSION,
         VK_KHR_MIR_SURFACE_EXTENSION_NAME,
         pattern VK_KHR_MIR_SURFACE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR)
        where
-import           GHC.Ptr                                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Include
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.PlatformMirKhr
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
+import GHC.Ptr                                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Include
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.PlatformMirKhr
+import System.IO.Unsafe                                  (unsafeDupablePerformIO)
 
 pattern VkCreateMirSurfaceKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_multiview.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_multiview.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_multiview.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_multiview.hs
@@ -34,14 +34,14 @@
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR,
         pattern VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR)
        where
-import           GHC.Ptr                                     (Ptr (..))
-import           Graphics.Vulkan.Core_1_1                    (pattern VK_DEPENDENCY_VIEW_LOCAL_BIT,
-                                                              pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
-                                                              pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
-                                                              pattern VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
-import           Graphics.Vulkan.Types.Struct.RenderPass
+import GHC.Ptr                                     (Ptr (..))
+import Graphics.Vulkan.Core_1_1                    (pattern VK_DEPENDENCY_VIEW_LOCAL_BIT,
+                                                    pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
+                                                    pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
+                                                    pattern VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.Struct.PhysicalDevice
+import Graphics.Vulkan.Types.Struct.RenderPass
 
 pattern VK_KHR_MULTIVIEW_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_push_descriptor.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_push_descriptor.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_push_descriptor.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_push_descriptor.hs
@@ -28,8 +28,14 @@
 
         -- ** Required extensions: 'VK_KHR_get_physical_device_properties2'.
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.BaseTypes, VkPhysicalDeviceLimits,
+        VkPhysicalDeviceLimits', VkPhysicalDeviceProperties,
+        VkPhysicalDeviceProperties', VkPhysicalDeviceProperties2,
+        VkPhysicalDeviceProperties2',
+        VkPhysicalDevicePushDescriptorPropertiesKHR,
+        VkPhysicalDevicePushDescriptorPropertiesKHR',
+        VkPhysicalDeviceSparseProperties,
+        VkPhysicalDeviceSparseProperties',
         module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
         module Graphics.Vulkan.Types.Enum.StructureType,
@@ -55,20 +61,29 @@
         PFN_vkCmdPushDescriptorSetWithTemplateKHR,
         pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR)
        where
-import           GHC.Ptr                                         (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                    (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.Descriptor
-import           Graphics.Vulkan.Types.Enum.Image
-import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.Pipeline
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.Descriptor
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
-import           Graphics.Vulkan.Types.Struct.WriteDescriptorSet
+import GHC.Ptr                                         (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                    (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.Descriptor
+import Graphics.Vulkan.Types.Enum.Image
+import Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import Graphics.Vulkan.Types.Enum.Pipeline
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.Descriptor
+import Graphics.Vulkan.Types.Struct.PhysicalDevice     (VkPhysicalDeviceLimits,
+                                                        VkPhysicalDeviceLimits',
+                                                        VkPhysicalDeviceProperties,
+                                                        VkPhysicalDeviceProperties',
+                                                        VkPhysicalDeviceProperties2,
+                                                        VkPhysicalDeviceProperties2',
+                                                        VkPhysicalDevicePushDescriptorPropertiesKHR,
+                                                        VkPhysicalDevicePushDescriptorPropertiesKHR',
+                                                        VkPhysicalDeviceSparseProperties,
+                                                        VkPhysicalDeviceSparseProperties')
+import Graphics.Vulkan.Types.Struct.WriteDescriptorSet
 
 pattern VkCmdPushDescriptorSetKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_relaxed_block_layout.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_relaxed_block_layout.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_relaxed_block_layout.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_relaxed_block_layout.hs
@@ -22,8 +22,8 @@
         VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME,
         pattern VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_sampler_mirror_clamp_to_edge.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_sampler_mirror_clamp_to_edge.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_sampler_mirror_clamp_to_edge.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_sampler_mirror_clamp_to_edge.hs
@@ -23,9 +23,9 @@
         pattern VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME,
         pattern VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE)
        where
-import           GHC.Ptr                            (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.Sampler (VkSamplerAddressMode (..))
+import GHC.Ptr                            (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.Enum.Sampler (VkSamplerAddressMode (..))
 
 pattern VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_sampler_ycbcr_conversion.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_sampler_ycbcr_conversion.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_sampler_ycbcr_conversion.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_sampler_ycbcr_conversion.hs
@@ -124,80 +124,80 @@
         -- ** Required extensions: 'VK_EXT_debug_report', 'VK_KHR_maintenance1', 'VK_KHR_bind_memory2', 'VK_KHR_get_memory_requirements2', 'VK_KHR_get_physical_device_properties2'.
         pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT)
        where
-import           GHC.Ptr                                           (Ptr (..))
-import           Graphics.Vulkan.Core_1_1                          (pattern VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
-                                                                    pattern VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
-                                                                    pattern VK_FORMAT_B16G16R16G16_422_UNORM,
-                                                                    pattern VK_FORMAT_B8G8R8G8_422_UNORM,
-                                                                    pattern VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
-                                                                    pattern VK_FORMAT_FEATURE_DISJOINT_BIT,
-                                                                    pattern VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
-                                                                    pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
-                                                                    pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
-                                                                    pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
-                                                                    pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
-                                                                    pattern VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
-                                                                    pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
-                                                                    pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
-                                                                    pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
-                                                                    pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
-                                                                    pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
-                                                                    pattern VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
-                                                                    pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
-                                                                    pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
-                                                                    pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
-                                                                    pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
-                                                                    pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
-                                                                    pattern VK_FORMAT_G16B16G16R16_422_UNORM,
-                                                                    pattern VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
-                                                                    pattern VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
-                                                                    pattern VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
-                                                                    pattern VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
-                                                                    pattern VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
-                                                                    pattern VK_FORMAT_G8B8G8R8_422_UNORM,
-                                                                    pattern VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
-                                                                    pattern VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
-                                                                    pattern VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
-                                                                    pattern VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
-                                                                    pattern VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
-                                                                    pattern VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
-                                                                    pattern VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
-                                                                    pattern VK_FORMAT_R10X6_UNORM_PACK16,
-                                                                    pattern VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
-                                                                    pattern VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
-                                                                    pattern VK_FORMAT_R12X4_UNORM_PACK16,
-                                                                    pattern VK_IMAGE_ASPECT_PLANE_0_BIT,
-                                                                    pattern VK_IMAGE_ASPECT_PLANE_1_BIT,
-                                                                    pattern VK_IMAGE_ASPECT_PLANE_2_BIT,
-                                                                    pattern VK_IMAGE_CREATE_DISJOINT_BIT,
-                                                                    pattern VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
-                                                                    pattern VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
-                                                                    pattern VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
-                                                                    pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
-                                                                    pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
-                                                                    pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
-                                                                    pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO)
-import           Graphics.Vulkan.Ext.VK_EXT_debug_report           (pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.ChromaLocation
-import           Graphics.Vulkan.Types.Enum.ComponentSwizzle
-import           Graphics.Vulkan.Types.Enum.Filter
-import           Graphics.Vulkan.Types.Enum.Format
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.Sampler
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.Bind
-import           Graphics.Vulkan.Types.Struct.ComponentMapping
-import           Graphics.Vulkan.Types.Struct.Image
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
-import           Graphics.Vulkan.Types.Struct.Sampler
+import GHC.Ptr                                           (Ptr (..))
+import Graphics.Vulkan.Core_1_1                          (pattern VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
+                                                          pattern VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
+                                                          pattern VK_FORMAT_B16G16R16G16_422_UNORM,
+                                                          pattern VK_FORMAT_B8G8R8G8_422_UNORM,
+                                                          pattern VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
+                                                          pattern VK_FORMAT_FEATURE_DISJOINT_BIT,
+                                                          pattern VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
+                                                          pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
+                                                          pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
+                                                          pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
+                                                          pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
+                                                          pattern VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
+                                                          pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
+                                                          pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
+                                                          pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
+                                                          pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
+                                                          pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
+                                                          pattern VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
+                                                          pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
+                                                          pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
+                                                          pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
+                                                          pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
+                                                          pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
+                                                          pattern VK_FORMAT_G16B16G16R16_422_UNORM,
+                                                          pattern VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
+                                                          pattern VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
+                                                          pattern VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
+                                                          pattern VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
+                                                          pattern VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
+                                                          pattern VK_FORMAT_G8B8G8R8_422_UNORM,
+                                                          pattern VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
+                                                          pattern VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
+                                                          pattern VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
+                                                          pattern VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
+                                                          pattern VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
+                                                          pattern VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
+                                                          pattern VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
+                                                          pattern VK_FORMAT_R10X6_UNORM_PACK16,
+                                                          pattern VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
+                                                          pattern VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
+                                                          pattern VK_FORMAT_R12X4_UNORM_PACK16,
+                                                          pattern VK_IMAGE_ASPECT_PLANE_0_BIT,
+                                                          pattern VK_IMAGE_ASPECT_PLANE_1_BIT,
+                                                          pattern VK_IMAGE_ASPECT_PLANE_2_BIT,
+                                                          pattern VK_IMAGE_CREATE_DISJOINT_BIT,
+                                                          pattern VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
+                                                          pattern VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
+                                                          pattern VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
+                                                          pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
+                                                          pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
+                                                          pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
+                                                          pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO)
+import Graphics.Vulkan.Ext.VK_EXT_debug_report           (pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.ChromaLocation
+import Graphics.Vulkan.Types.Enum.ComponentSwizzle
+import Graphics.Vulkan.Types.Enum.Filter
+import Graphics.Vulkan.Types.Enum.Format
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.Sampler
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.Bind
+import Graphics.Vulkan.Types.Struct.ComponentMapping
+import Graphics.Vulkan.Types.Struct.Image
+import Graphics.Vulkan.Types.Struct.PhysicalDevice
+import Graphics.Vulkan.Types.Struct.Sampler
 
 pattern VkCreateSamplerYcbcrConversionKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_shader_draw_parameters.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_shader_draw_parameters.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_shader_draw_parameters.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_shader_draw_parameters.hs
@@ -22,8 +22,8 @@
         VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME,
         pattern VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_shared_presentable_image.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_shared_presentable_image.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_shared_presentable_image.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_shared_presentable_image.hs
@@ -28,12 +28,13 @@
 
         -- ** Required extensions: 'VK_KHR_swapchain', 'VK_KHR_get_physical_device_properties2', 'VK_KHR_get_surface_capabilities2'.
         module Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR,
-        module Graphics.Vulkan.Types.Struct.Extent,
-        module Graphics.Vulkan.Types.BaseTypes,
+        VkExtent2D, VkExtent2D', module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.Image,
-        module Graphics.Vulkan.Types.Struct.SharedPresentSurfaceCapabilitiesKHR,
+        VkSharedPresentSurfaceCapabilitiesKHR,
+        VkSharedPresentSurfaceCapabilitiesKHR',
         module Graphics.Vulkan.Types.Enum.StructureType,
-        module Graphics.Vulkan.Types.Struct.Surface,
+        VkSurfaceCapabilities2KHR, VkSurfaceCapabilities2KHR',
+        VkSurfaceCapabilitiesKHR, VkSurfaceCapabilitiesKHR',
         module Graphics.Vulkan.Types.Enum.Surface, -- > #include "vk_platform.h"
                                                    VkGetSwapchainStatusKHR,
         pattern VkGetSwapchainStatusKHR, HS_vkGetSwapchainStatusKHR,
@@ -49,23 +50,25 @@
         pattern VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR,
         pattern VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR)
        where
-import           GHC.Ptr
-                                                                                   (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc
-                                                                                   (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
-import           Graphics.Vulkan.Types.Enum.Image
-import           Graphics.Vulkan.Types.Enum.PresentModeKHR
-                                                                                   (VkPresentModeKHR (..))
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.Surface
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.SharedPresentSurfaceCapabilitiesKHR
-import           Graphics.Vulkan.Types.Struct.Surface
+import GHC.Ptr                                                          (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                                     (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
+import Graphics.Vulkan.Types.Enum.Image
+import Graphics.Vulkan.Types.Enum.PresentModeKHR                        (VkPresentModeKHR (..))
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.Surface
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.Extent                              (VkExtent2D,
+                                                                         VkExtent2D')
+import Graphics.Vulkan.Types.Struct.SharedPresentSurfaceCapabilitiesKHR (VkSharedPresentSurfaceCapabilitiesKHR,
+                                                                         VkSharedPresentSurfaceCapabilitiesKHR')
+import Graphics.Vulkan.Types.Struct.Surface                             (VkSurfaceCapabilities2KHR,
+                                                                         VkSurfaceCapabilities2KHR',
+                                                                         VkSurfaceCapabilitiesKHR,
+                                                                         VkSurfaceCapabilitiesKHR')
 
 pattern VkGetSwapchainStatusKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_storage_buffer_storage_class.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_storage_buffer_storage_class.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_storage_buffer_storage_class.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_storage_buffer_storage_class.hs
@@ -22,8 +22,8 @@
         VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME,
         pattern VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_surface.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_surface.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_surface.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_surface.hs
@@ -80,26 +80,26 @@
         pattern VK_COLORSPACE_SRGB_NONLINEAR_KHR,
         pattern VK_OBJECT_TYPE_SURFACE_KHR)
        where
-import           GHC.Ptr                                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.Color
-import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
-import           Graphics.Vulkan.Types.Enum.Format
-import           Graphics.Vulkan.Types.Enum.Image
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.Object                 (VkObjectType (..))
-import           Graphics.Vulkan.Types.Enum.PresentModeKHR
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.Surface
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.Surface
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
+import GHC.Ptr                                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.Color
+import Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
+import Graphics.Vulkan.Types.Enum.Format
+import Graphics.Vulkan.Types.Enum.Image
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.Object                 (VkObjectType (..))
+import Graphics.Vulkan.Types.Enum.PresentModeKHR
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.Surface
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.Extent
+import Graphics.Vulkan.Types.Struct.Surface
+import System.IO.Unsafe                                  (unsafeDupablePerformIO)
 
 pattern VkDestroySurfaceKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_swapchain.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_swapchain.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_swapchain.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_swapchain.hs
@@ -73,14 +73,22 @@
         pattern VK_STRUCTURE_TYPE_PRESENT_INFO_KHR,
         pattern VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, pattern VK_SUBOPTIMAL_KHR,
         pattern VK_ERROR_OUT_OF_DATE_KHR,
-        pattern VK_OBJECT_TYPE_SWAPCHAIN_KHR,
-        -- ** Required extensions: 'VK_KHR_surface'.
-        module Graphics.Vulkan.Types.Struct.AcquireNextImageInfoKHR,
-        module Graphics.Vulkan.Types.Struct.Bind,
-        module Graphics.Vulkan.Types.Struct.Device,
+        pattern VK_OBJECT_TYPE_SWAPCHAIN_KHR, -- ** Required extensions: 'VK_KHR_surface'.
+                                              VkAcquireNextImageInfoKHR,
+        VkAcquireNextImageInfoKHR', VkBindImageMemoryInfo,
+        VkBindImageMemoryInfo', VkBindImageMemorySwapchainInfoKHR,
+        VkBindImageMemorySwapchainInfoKHR',
+        VkDeviceGroupPresentCapabilitiesKHR,
+        VkDeviceGroupPresentCapabilitiesKHR', VkDeviceGroupPresentInfoKHR,
+        VkDeviceGroupPresentInfoKHR',
         module Graphics.Vulkan.Types.Enum.Device,
-        module Graphics.Vulkan.Types.Struct.Image,
+        VkDeviceGroupSwapchainCreateInfoKHR,
+        VkDeviceGroupSwapchainCreateInfoKHR', VkExtent2D, VkExtent2D',
+        VkExtent3D, VkExtent3D', VkImageCreateInfo, VkImageCreateInfo',
+        VkImageSwapchainCreateInfoKHR, VkImageSwapchainCreateInfoKHR',
+        VkPresentInfoKHR, VkPresentInfoKHR',
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        VkSwapchainCreateInfoKHR, VkSwapchainCreateInfoKHR',
         -- > #include "vk_platform.h"
         VkGetDeviceGroupPresentCapabilitiesKHR,
         pattern VkGetDeviceGroupPresentCapabilitiesKHR,
@@ -107,6 +115,8 @@
         HS_vkAcquireNextImage2KHR, PFN_vkAcquireNextImage2KHR,
         vkAcquireNextImage2KHR, vkAcquireNextImage2KHRUnsafe,
         vkAcquireNextImage2KHRSafe,
+        module Graphics.Vulkan.Types.Struct.AcquireNextImageInfoKHR,
+        module Graphics.Vulkan.Types.Struct.Device,
         module Graphics.Vulkan.Types.Struct.Offset,
         module Graphics.Vulkan.Types.Struct.Rect,
         pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
@@ -118,38 +128,44 @@
         pattern VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
         pattern VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR)
        where
-import           GHC.Ptr                                              (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.Color
-import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
-import           Graphics.Vulkan.Types.Enum.Device
-import           Graphics.Vulkan.Types.Enum.Format
-import           Graphics.Vulkan.Types.Enum.Image
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.Object                    (VkObjectType (..))
-import           Graphics.Vulkan.Types.Enum.PresentModeKHR
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.SharingMode
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.Surface
-import           Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.AcquireNextImageInfoKHR
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.Bind
-import           Graphics.Vulkan.Types.Struct.Device
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.Image
-import           Graphics.Vulkan.Types.Struct.Offset
-import           Graphics.Vulkan.Types.Struct.Present
-import           Graphics.Vulkan.Types.Struct.Rect
-import           Graphics.Vulkan.Types.Struct.SwapchainC
-import           System.IO.Unsafe                                     (unsafeDupablePerformIO)
+import GHC.Ptr                                              (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.Color
+import Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
+import Graphics.Vulkan.Types.Enum.Device
+import Graphics.Vulkan.Types.Enum.Format
+import Graphics.Vulkan.Types.Enum.Image
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.Object                    (VkObjectType (..))
+import Graphics.Vulkan.Types.Enum.PresentModeKHR
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.SharingMode
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.Surface
+import Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.AcquireNextImageInfoKHR
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.Bind                    (VkBindImageMemoryInfo,
+                                                             VkBindImageMemoryInfo',
+                                                             VkBindImageMemorySwapchainInfoKHR,
+                                                             VkBindImageMemorySwapchainInfoKHR')
+import Graphics.Vulkan.Types.Struct.Device
+import Graphics.Vulkan.Types.Struct.Extent
+import Graphics.Vulkan.Types.Struct.Image                   (VkImageCreateInfo,
+                                                             VkImageCreateInfo',
+                                                             VkImageSwapchainCreateInfoKHR,
+                                                             VkImageSwapchainCreateInfoKHR')
+import Graphics.Vulkan.Types.Struct.Offset
+import Graphics.Vulkan.Types.Struct.Present
+import Graphics.Vulkan.Types.Struct.Rect
+import Graphics.Vulkan.Types.Struct.SwapchainC
+import System.IO.Unsafe                                     (unsafeDupablePerformIO)
 
 pattern VkCreateSwapchainKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_variable_pointers.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_variable_pointers.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_variable_pointers.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_variable_pointers.hs
@@ -30,10 +30,10 @@
         pattern VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR)
        where
-import           GHC.Ptr                                     (Ptr (..))
-import           Graphics.Vulkan.Core_1_1                    (pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import GHC.Ptr                                     (Ptr (..))
+import Graphics.Vulkan.Core_1_1                    (pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.Struct.PhysicalDevice
 
 pattern VK_KHR_VARIABLE_POINTERS_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_wayland_surface.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_wayland_surface.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_wayland_surface.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_wayland_surface.hs
@@ -34,7 +34,7 @@
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.StructureType,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.PlatformWaylandKhr,
+        VkWaylandSurfaceCreateInfoKHR, VkWaylandSurfaceCreateInfoKHR',
         -- > #include "vk_platform.h"
         VkCreateWaylandSurfaceKHR, pattern VkCreateWaylandSurfaceKHR,
         HS_vkCreateWaylandSurfaceKHR, PFN_vkCreateWaylandSurfaceKHR,
@@ -55,27 +55,28 @@
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Include,
         module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.PlatformWaylandKhr,
         VK_KHR_WAYLAND_SURFACE_SPEC_VERSION,
         pattern VK_KHR_WAYLAND_SURFACE_SPEC_VERSION,
         VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME,
         pattern VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR)
        where
-import           GHC.Ptr                                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Include
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.PlatformWaylandKhr
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
+import GHC.Ptr                                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Include
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.PlatformWaylandKhr
+import System.IO.Unsafe                                  (unsafeDupablePerformIO)
 
 pattern VkCreateWaylandSurfaceKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_win32_keyed_mutex.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_win32_keyed_mutex.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_win32_keyed_mutex.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_win32_keyed_mutex.hs
@@ -26,9 +26,9 @@
         -- ** Required extensions: 'VK_KHR_external_memory_win32'.
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.Pipeline,
-        module Graphics.Vulkan.Types.Enum.StructureType,
-        module Graphics.Vulkan.Types.Struct.SubmitInfo,
-        module Graphics.Vulkan.Types.Struct.PlatformWin32Khr,
+        module Graphics.Vulkan.Types.Enum.StructureType, VkSubmitInfo,
+        VkSubmitInfo', VkWin32KeyedMutexAcquireReleaseInfoKHR,
+        VkWin32KeyedMutexAcquireReleaseInfoKHR',
         -- > #include "vk_platform.h"
         VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION,
         pattern VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION,
@@ -36,13 +36,15 @@
         pattern VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR)
        where
-import           GHC.Ptr                                       (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.Pipeline
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Struct.PlatformWin32Khr
-import           Graphics.Vulkan.Types.Struct.SubmitInfo
+import GHC.Ptr                                       (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.Pipeline
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Struct.PlatformWin32Khr (VkWin32KeyedMutexAcquireReleaseInfoKHR,
+                                                      VkWin32KeyedMutexAcquireReleaseInfoKHR')
+import Graphics.Vulkan.Types.Struct.SubmitInfo       (VkSubmitInfo,
+                                                      VkSubmitInfo')
 
 pattern VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_win32_surface.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_win32_surface.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_win32_surface.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_win32_surface.hs
@@ -33,13 +33,12 @@
         -- ** Required extensions: 'VK_KHR_surface'.
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.StructureType,
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.PlatformWin32Khr,
-        -- > #include "vk_platform.h"
-        VkCreateWin32SurfaceKHR, pattern VkCreateWin32SurfaceKHR,
-        HS_vkCreateWin32SurfaceKHR, PFN_vkCreateWin32SurfaceKHR,
-        vkCreateWin32SurfaceKHR, vkCreateWin32SurfaceKHRUnsafe,
-        vkCreateWin32SurfaceKHRSafe,
+        module Graphics.Vulkan.Types.Bitmasks, VkWin32SurfaceCreateInfoKHR,
+        VkWin32SurfaceCreateInfoKHR', -- > #include "vk_platform.h"
+                                      VkCreateWin32SurfaceKHR,
+        pattern VkCreateWin32SurfaceKHR, HS_vkCreateWin32SurfaceKHR,
+        PFN_vkCreateWin32SurfaceKHR, vkCreateWin32SurfaceKHR,
+        vkCreateWin32SurfaceKHRUnsafe, vkCreateWin32SurfaceKHRSafe,
         VkGetPhysicalDeviceWin32PresentationSupportKHR,
         pattern VkGetPhysicalDeviceWin32PresentationSupportKHR,
         HS_vkGetPhysicalDeviceWin32PresentationSupportKHR,
@@ -55,27 +54,28 @@
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Include,
         module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.PlatformWin32Khr,
         VK_KHR_WIN32_SURFACE_SPEC_VERSION,
         pattern VK_KHR_WIN32_SURFACE_SPEC_VERSION,
         VK_KHR_WIN32_SURFACE_EXTENSION_NAME,
         pattern VK_KHR_WIN32_SURFACE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR)
        where
-import           GHC.Ptr                                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Include
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.PlatformWin32Khr
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
+import GHC.Ptr                                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Include
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.PlatformWin32Khr
+import System.IO.Unsafe                                  (unsafeDupablePerformIO)
 
 pattern VkCreateWin32SurfaceKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_xcb_surface.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_xcb_surface.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_xcb_surface.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_xcb_surface.hs
@@ -33,13 +33,12 @@
         -- ** Required extensions: 'VK_KHR_surface'.
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.StructureType,
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.PlatformXcbKhr,
-        -- > #include "vk_platform.h"
-        VkCreateXcbSurfaceKHR, pattern VkCreateXcbSurfaceKHR,
-        HS_vkCreateXcbSurfaceKHR, PFN_vkCreateXcbSurfaceKHR,
-        vkCreateXcbSurfaceKHR, vkCreateXcbSurfaceKHRUnsafe,
-        vkCreateXcbSurfaceKHRSafe,
+        module Graphics.Vulkan.Types.Bitmasks, VkXcbSurfaceCreateInfoKHR,
+        VkXcbSurfaceCreateInfoKHR', -- > #include "vk_platform.h"
+                                    VkCreateXcbSurfaceKHR,
+        pattern VkCreateXcbSurfaceKHR, HS_vkCreateXcbSurfaceKHR,
+        PFN_vkCreateXcbSurfaceKHR, vkCreateXcbSurfaceKHR,
+        vkCreateXcbSurfaceKHRUnsafe, vkCreateXcbSurfaceKHRSafe,
         VkGetPhysicalDeviceXcbPresentationSupportKHR,
         pattern VkGetPhysicalDeviceXcbPresentationSupportKHR,
         HS_vkGetPhysicalDeviceXcbPresentationSupportKHR,
@@ -55,27 +54,28 @@
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Include,
         module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.PlatformXcbKhr,
         VK_KHR_XCB_SURFACE_SPEC_VERSION,
         pattern VK_KHR_XCB_SURFACE_SPEC_VERSION,
         VK_KHR_XCB_SURFACE_EXTENSION_NAME,
         pattern VK_KHR_XCB_SURFACE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR)
        where
-import           GHC.Ptr                                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Include
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.PlatformXcbKhr
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
+import GHC.Ptr                                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Include
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.PlatformXcbKhr
+import System.IO.Unsafe                                  (unsafeDupablePerformIO)
 
 pattern VkCreateXcbSurfaceKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_xlib_surface.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_xlib_surface.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_xlib_surface.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_xlib_surface.hs
@@ -33,13 +33,12 @@
         -- ** Required extensions: 'VK_KHR_surface'.
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.StructureType,
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.PlatformXlibKhr,
-        -- > #include "vk_platform.h"
-        VkCreateXlibSurfaceKHR, pattern VkCreateXlibSurfaceKHR,
-        HS_vkCreateXlibSurfaceKHR, PFN_vkCreateXlibSurfaceKHR,
-        vkCreateXlibSurfaceKHR, vkCreateXlibSurfaceKHRUnsafe,
-        vkCreateXlibSurfaceKHRSafe,
+        module Graphics.Vulkan.Types.Bitmasks, VkXlibSurfaceCreateInfoKHR,
+        VkXlibSurfaceCreateInfoKHR', -- > #include "vk_platform.h"
+                                     VkCreateXlibSurfaceKHR,
+        pattern VkCreateXlibSurfaceKHR, HS_vkCreateXlibSurfaceKHR,
+        PFN_vkCreateXlibSurfaceKHR, vkCreateXlibSurfaceKHR,
+        vkCreateXlibSurfaceKHRUnsafe, vkCreateXlibSurfaceKHRSafe,
         VkGetPhysicalDeviceXlibPresentationSupportKHR,
         pattern VkGetPhysicalDeviceXlibPresentationSupportKHR,
         HS_vkGetPhysicalDeviceXlibPresentationSupportKHR,
@@ -55,27 +54,28 @@
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Include,
         module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.PlatformXlibKhr,
         VK_KHR_XLIB_SURFACE_SPEC_VERSION,
         pattern VK_KHR_XLIB_SURFACE_SPEC_VERSION,
         VK_KHR_XLIB_SURFACE_EXTENSION_NAME,
         pattern VK_KHR_XLIB_SURFACE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR)
        where
-import           GHC.Ptr                                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Include
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.PlatformXlibKhr
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
+import GHC.Ptr                                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Include
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.PlatformXlibKhr
+import System.IO.Unsafe                                  (unsafeDupablePerformIO)
 
 pattern VkCreateXlibSurfaceKHR :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_MVK_ios_surface.hs b/src-gen/Graphics/Vulkan/Ext/VK_MVK_ios_surface.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_MVK_ios_surface.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_MVK_ios_surface.hs
@@ -30,8 +30,8 @@
 
         -- ** Required extensions: 'VK_KHR_surface'.
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.PlatformIosMvk,
+        module Graphics.Vulkan.Types.Bitmasks, VkIOSSurfaceCreateInfoMVK,
+        VkIOSSurfaceCreateInfoMVK',
         module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VkCreateIOSSurfaceMVK, pattern VkCreateIOSSurfaceMVK,
@@ -43,25 +43,26 @@
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.PlatformIosMvk,
         VK_MVK_IOS_SURFACE_SPEC_VERSION,
         pattern VK_MVK_IOS_SURFACE_SPEC_VERSION,
         VK_MVK_IOS_SURFACE_EXTENSION_NAME,
         pattern VK_MVK_IOS_SURFACE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK)
        where
-import           GHC.Ptr                                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.PlatformIosMvk
+import GHC.Ptr                                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.PlatformIosMvk
 
 pattern VkCreateIOSSurfaceMVK :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_MVK_macos_surface.hs b/src-gen/Graphics/Vulkan/Ext/VK_MVK_macos_surface.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_MVK_macos_surface.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_MVK_macos_surface.hs
@@ -30,8 +30,8 @@
 
         -- ** Required extensions: 'VK_KHR_surface'.
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.PlatformMacosMvk,
+        module Graphics.Vulkan.Types.Bitmasks, VkMacOSSurfaceCreateInfoMVK,
+        VkMacOSSurfaceCreateInfoMVK',
         module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VkCreateMacOSSurfaceMVK, pattern VkCreateMacOSSurfaceMVK,
@@ -43,25 +43,26 @@
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.PlatformMacosMvk,
         VK_MVK_MACOS_SURFACE_SPEC_VERSION,
         pattern VK_MVK_MACOS_SURFACE_SPEC_VERSION,
         VK_MVK_MACOS_SURFACE_EXTENSION_NAME,
         pattern VK_MVK_MACOS_SURFACE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK)
        where
-import           GHC.Ptr                                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.PlatformMacosMvk
+import GHC.Ptr                                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.PlatformMacosMvk
 
 pattern VkCreateMacOSSurfaceMVK :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NN_vi_surface.hs b/src-gen/Graphics/Vulkan/Ext/VK_NN_vi_surface.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NN_vi_surface.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NN_vi_surface.hs
@@ -31,37 +31,37 @@
         -- ** Required extensions: 'VK_KHR_surface'.
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.StructureType,
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.PlatformViNn,
-        -- > #include "vk_platform.h"
-        VkCreateViSurfaceNN, pattern VkCreateViSurfaceNN,
-        HS_vkCreateViSurfaceNN, PFN_vkCreateViSurfaceNN,
-        module Graphics.Vulkan.Marshal,
+        module Graphics.Vulkan.Types.Bitmasks, VkViSurfaceCreateInfoNN,
+        VkViSurfaceCreateInfoNN', -- > #include "vk_platform.h"
+                                  VkCreateViSurfaceNN,
+        pattern VkCreateViSurfaceNN, HS_vkCreateViSurfaceNN,
+        PFN_vkCreateViSurfaceNN, module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.Enum.InternalAllocationType,
         module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.PlatformViNn,
         VK_NN_VI_SURFACE_SPEC_VERSION,
         pattern VK_NN_VI_SURFACE_SPEC_VERSION,
         VK_NN_VI_SURFACE_EXTENSION_NAME,
         pattern VK_NN_VI_SURFACE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN)
        where
-import           GHC.Ptr                                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.PlatformViNn
+import GHC.Ptr                                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.PlatformViNn
 
 pattern VkCreateViSurfaceNN :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NVX_device_generated_commands.hs b/src-gen/Graphics/Vulkan/Ext/VK_NVX_device_generated_commands.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NVX_device_generated_commands.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NVX_device_generated_commands.hs
@@ -23,13 +23,30 @@
         --
         -- Extension number: @87@
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.Cmd,
-        module Graphics.Vulkan.Types.Struct.Device,
+        VkCmdProcessCommandsInfoNVX, VkCmdProcessCommandsInfoNVX',
+        VkCmdReserveSpaceForCommandsInfoNVX,
+        VkCmdReserveSpaceForCommandsInfoNVX',
+        VkDeviceGeneratedCommandsFeaturesNVX,
+        VkDeviceGeneratedCommandsFeaturesNVX',
+        VkDeviceGeneratedCommandsLimitsNVX,
+        VkDeviceGeneratedCommandsLimitsNVX',
         module Graphics.Vulkan.Types.Enum.IndexType,
-        module Graphics.Vulkan.Types.Struct.IndirectCommands,
+        VkIndirectCommandsLayoutCreateInfoNVX,
+        VkIndirectCommandsLayoutCreateInfoNVX',
+        VkIndirectCommandsLayoutTokenNVX,
+        VkIndirectCommandsLayoutTokenNVX',
         module Graphics.Vulkan.Types.Enum.IndirectCommands,
+        VkIndirectCommandsTokenNVX, VkIndirectCommandsTokenNVX',
         module Graphics.Vulkan.Types.Enum.Object,
-        module Graphics.Vulkan.Types.Struct.ObjectTable,
+        VkObjectTableCreateInfoNVX, VkObjectTableCreateInfoNVX',
+        VkObjectTableDescriptorSetEntryNVX,
+        VkObjectTableDescriptorSetEntryNVX', VkObjectTableEntryNVX,
+        VkObjectTableEntryNVX', VkObjectTableIndexBufferEntryNVX,
+        VkObjectTableIndexBufferEntryNVX', VkObjectTablePipelineEntryNVX,
+        VkObjectTablePipelineEntryNVX', VkObjectTablePushConstantEntryNVX,
+        VkObjectTablePushConstantEntryNVX',
+        VkObjectTableVertexBufferEntryNVX,
+        VkObjectTableVertexBufferEntryNVX',
         module Graphics.Vulkan.Types.Enum.Pipeline,
         module Graphics.Vulkan.Types.Enum.Shader,
         module Graphics.Vulkan.Types.Enum.StructureType,
@@ -67,6 +84,10 @@
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.Cmd,
+        module Graphics.Vulkan.Types.Struct.Device,
+        module Graphics.Vulkan.Types.Struct.IndirectCommands,
+        module Graphics.Vulkan.Types.Struct.ObjectTable,
         VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION,
         pattern VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION,
         VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME,
@@ -83,28 +104,28 @@
         pattern VK_OBJECT_TYPE_OBJECT_TABLE_NVX,
         pattern VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX)
        where
-import           GHC.Ptr                                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.AccessFlags            (VkAccessBitmask (..),
-                                                                    VkAccessFlagBits)
-import           Graphics.Vulkan.Types.Enum.IndexType
-import           Graphics.Vulkan.Types.Enum.IndirectCommands
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType
-import           Graphics.Vulkan.Types.Enum.Object
-import           Graphics.Vulkan.Types.Enum.Pipeline
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.Shader
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.Cmd
-import           Graphics.Vulkan.Types.Struct.Device
-import           Graphics.Vulkan.Types.Struct.IndirectCommands
-import           Graphics.Vulkan.Types.Struct.ObjectTable
+import GHC.Ptr                                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.AccessFlags            (VkAccessBitmask (..),
+                                                          VkAccessFlagBits)
+import Graphics.Vulkan.Types.Enum.IndexType
+import Graphics.Vulkan.Types.Enum.IndirectCommands
+import Graphics.Vulkan.Types.Enum.InternalAllocationType
+import Graphics.Vulkan.Types.Enum.Object
+import Graphics.Vulkan.Types.Enum.Pipeline
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.Shader
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import Graphics.Vulkan.Types.Funcpointers
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import Graphics.Vulkan.Types.Struct.Cmd
+import Graphics.Vulkan.Types.Struct.Device
+import Graphics.Vulkan.Types.Struct.IndirectCommands
+import Graphics.Vulkan.Types.Struct.ObjectTable
 
 pattern VkCmdProcessCommandsNVX :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NVX_multiview_per_view_attributes.hs b/src-gen/Graphics/Vulkan/Ext/VK_NVX_multiview_per_view_attributes.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NVX_multiview_per_view_attributes.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NVX_multiview_per_view_attributes.hs
@@ -23,8 +23,14 @@
 
         -- ** Required extensions: 'VK_KHR_multiview'.
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.BaseTypes, VkPhysicalDeviceLimits,
+        VkPhysicalDeviceLimits',
+        VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX,
+        VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX',
+        VkPhysicalDeviceProperties, VkPhysicalDeviceProperties',
+        VkPhysicalDeviceProperties2, VkPhysicalDeviceProperties2',
+        VkPhysicalDeviceSparseProperties,
+        VkPhysicalDeviceSparseProperties',
         module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
         module Graphics.Vulkan.Types.Enum.StructureType,
@@ -37,15 +43,24 @@
         pattern VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,
         pattern VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX)
        where
-import           GHC.Ptr                                       (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.Subpass            (VkSubpassDescriptionBitmask (..),
-                                                                VkSubpassDescriptionFlagBits)
-import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import GHC.Ptr                                       (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.Subpass            (VkSubpassDescriptionBitmask (..),
+                                                      VkSubpassDescriptionFlagBits)
+import Graphics.Vulkan.Types.Struct.PhysicalDevice   (VkPhysicalDeviceLimits,
+                                                      VkPhysicalDeviceLimits',
+                                                      VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX,
+                                                      VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX',
+                                                      VkPhysicalDeviceProperties,
+                                                      VkPhysicalDeviceProperties',
+                                                      VkPhysicalDeviceProperties2,
+                                                      VkPhysicalDeviceProperties2',
+                                                      VkPhysicalDeviceSparseProperties,
+                                                      VkPhysicalDeviceSparseProperties')
 
 pattern VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_clip_space_w_scaling.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_clip_space_w_scaling.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_clip_space_w_scaling.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_clip_space_w_scaling.hs
@@ -22,18 +22,19 @@
         -- type: @device@
         --
         -- Extension number: @88@
-        module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.Extent,
-        module Graphics.Vulkan.Types.Struct.Offset,
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.Pipeline,
-        module Graphics.Vulkan.Types.Struct.Rect,
-        module Graphics.Vulkan.Types.Enum.StructureType,
-        module Graphics.Vulkan.Types.Struct.Viewport,
+        module Graphics.Vulkan.Types.BaseTypes, VkExtent2D, VkExtent2D',
+        VkOffset2D, VkOffset2D', module Graphics.Vulkan.Types.Bitmasks,
+        VkPipelineViewportStateCreateInfo,
+        VkPipelineViewportStateCreateInfo',
+        VkPipelineViewportWScalingStateCreateInfoNV,
+        VkPipelineViewportWScalingStateCreateInfoNV', VkRect2D, VkRect2D',
+        module Graphics.Vulkan.Types.Enum.StructureType, VkViewport,
+        VkViewport', VkViewportWScalingNV, VkViewportWScalingNV',
         -- > #include "vk_platform.h"
         VkCmdSetViewportWScalingNV, pattern VkCmdSetViewportWScalingNV,
         HS_vkCmdSetViewportWScalingNV, PFN_vkCmdSetViewportWScalingNV,
         module Graphics.Vulkan.Types.Handles,
+        module Graphics.Vulkan.Types.Struct.Viewport,
         VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION,
         pattern VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION,
         VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME,
@@ -41,19 +42,22 @@
         pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV,
         pattern VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV)
        where
-import           GHC.Ptr                                  (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc             (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.DynamicState  (VkDynamicState (..))
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.Offset
-import           Graphics.Vulkan.Types.Struct.Pipeline
-import           Graphics.Vulkan.Types.Struct.Rect
-import           Graphics.Vulkan.Types.Struct.Viewport
+import GHC.Ptr                                  (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc             (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.DynamicState  (VkDynamicState (..))
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.Extent      (VkExtent2D, VkExtent2D')
+import Graphics.Vulkan.Types.Struct.Offset      (VkOffset2D, VkOffset2D')
+import Graphics.Vulkan.Types.Struct.Pipeline    (VkPipelineViewportStateCreateInfo,
+                                                 VkPipelineViewportStateCreateInfo',
+                                                 VkPipelineViewportWScalingStateCreateInfoNV,
+                                                 VkPipelineViewportWScalingStateCreateInfoNV')
+import Graphics.Vulkan.Types.Struct.Rect        (VkRect2D, VkRect2D')
+import Graphics.Vulkan.Types.Struct.Viewport
 
 pattern VkCmdSetViewportWScalingNV :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_dedicated_allocation.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_dedicated_allocation.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_dedicated_allocation.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_dedicated_allocation.hs
@@ -18,14 +18,16 @@
         --
         -- Extension number: @27@
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.Buffer,
-        module Graphics.Vulkan.Types.Struct.Buffer,
-        module Graphics.Vulkan.Types.Struct.DedicatedAllocation,
-        module Graphics.Vulkan.Types.Struct.Extent,
-        module Graphics.Vulkan.Types.Enum.Format,
-        module Graphics.Vulkan.Types.Enum.Image,
-        module Graphics.Vulkan.Types.Struct.Image,
-        module Graphics.Vulkan.Types.Struct.Memory,
+        module Graphics.Vulkan.Types.Enum.Buffer, VkBufferCreateInfo,
+        VkBufferCreateInfo', VkDedicatedAllocationBufferCreateInfoNV,
+        VkDedicatedAllocationBufferCreateInfoNV',
+        VkDedicatedAllocationImageCreateInfoNV,
+        VkDedicatedAllocationImageCreateInfoNV',
+        VkDedicatedAllocationMemoryAllocateInfoNV,
+        VkDedicatedAllocationMemoryAllocateInfoNV', VkExtent3D,
+        VkExtent3D', module Graphics.Vulkan.Types.Enum.Format,
+        module Graphics.Vulkan.Types.Enum.Image, VkImageCreateInfo,
+        VkImageCreateInfo', VkMemoryAllocateInfo, VkMemoryAllocateInfo',
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
         module Graphics.Vulkan.Types.Enum.SharingMode,
         module Graphics.Vulkan.Types.Enum.StructureType,
@@ -38,20 +40,29 @@
         pattern VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV,
         pattern VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV)
        where
-import           GHC.Ptr                                          (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.Buffer
-import           Graphics.Vulkan.Types.Enum.Format
-import           Graphics.Vulkan.Types.Enum.Image
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.SharingMode
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Struct.Buffer
-import           Graphics.Vulkan.Types.Struct.DedicatedAllocation
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.Image
-import           Graphics.Vulkan.Types.Struct.Memory
+import GHC.Ptr                                          (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.Buffer
+import Graphics.Vulkan.Types.Enum.Format
+import Graphics.Vulkan.Types.Enum.Image
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.SharingMode
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Struct.Buffer              (VkBufferCreateInfo,
+                                                         VkBufferCreateInfo')
+import Graphics.Vulkan.Types.Struct.DedicatedAllocation (VkDedicatedAllocationBufferCreateInfoNV,
+                                                         VkDedicatedAllocationBufferCreateInfoNV',
+                                                         VkDedicatedAllocationImageCreateInfoNV,
+                                                         VkDedicatedAllocationImageCreateInfoNV',
+                                                         VkDedicatedAllocationMemoryAllocateInfoNV,
+                                                         VkDedicatedAllocationMemoryAllocateInfoNV')
+import Graphics.Vulkan.Types.Struct.Extent              (VkExtent3D,
+                                                         VkExtent3D')
+import Graphics.Vulkan.Types.Struct.Image               (VkImageCreateInfo,
+                                                         VkImageCreateInfo')
+import Graphics.Vulkan.Types.Struct.Memory              (VkMemoryAllocateInfo,
+                                                         VkMemoryAllocateInfo')
 
 pattern VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION :: (Num a, Eq a) =>
         a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory.hs
@@ -23,14 +23,14 @@
 
         -- ** Required extensions: 'VK_NV_external_memory_capabilities'.
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.Export,
-        module Graphics.Vulkan.Types.Struct.Extent,
+        VkExportMemoryAllocateInfoNV, VkExportMemoryAllocateInfoNV',
+        VkExtent3D, VkExtent3D',
         module Graphics.Vulkan.Types.Enum.External,
-        module Graphics.Vulkan.Types.Struct.External,
+        VkExternalMemoryImageCreateInfoNV,
+        VkExternalMemoryImageCreateInfoNV',
         module Graphics.Vulkan.Types.Enum.Format,
-        module Graphics.Vulkan.Types.Enum.Image,
-        module Graphics.Vulkan.Types.Struct.Image,
-        module Graphics.Vulkan.Types.Struct.Memory,
+        module Graphics.Vulkan.Types.Enum.Image, VkImageCreateInfo,
+        VkImageCreateInfo', VkMemoryAllocateInfo, VkMemoryAllocateInfo',
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
         module Graphics.Vulkan.Types.Enum.SharingMode,
         module Graphics.Vulkan.Types.Enum.StructureType,
@@ -42,20 +42,24 @@
         pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,
         pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV)
        where
-import           GHC.Ptr                                     (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.External
-import           Graphics.Vulkan.Types.Enum.Format
-import           Graphics.Vulkan.Types.Enum.Image
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.SharingMode
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Struct.Export
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.External
-import           Graphics.Vulkan.Types.Struct.Image
-import           Graphics.Vulkan.Types.Struct.Memory
+import GHC.Ptr                                     (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.External
+import Graphics.Vulkan.Types.Enum.Format
+import Graphics.Vulkan.Types.Enum.Image
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.SharingMode
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Struct.Export         (VkExportMemoryAllocateInfoNV,
+                                                    VkExportMemoryAllocateInfoNV')
+import Graphics.Vulkan.Types.Struct.Extent         (VkExtent3D, VkExtent3D')
+import Graphics.Vulkan.Types.Struct.External       (VkExternalMemoryImageCreateInfoNV,
+                                                    VkExternalMemoryImageCreateInfoNV')
+import Graphics.Vulkan.Types.Struct.Image          (VkImageCreateInfo,
+                                                    VkImageCreateInfo')
+import Graphics.Vulkan.Types.Struct.Memory         (VkMemoryAllocateInfo,
+                                                    VkMemoryAllocateInfo')
 
 pattern VK_NV_EXTERNAL_MEMORY_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory_capabilities.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory_capabilities.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory_capabilities.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory_capabilities.hs
@@ -23,11 +23,11 @@
         -- type: @instance@
         --
         -- Extension number: @56@
-        module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.Extent,
-        module Graphics.Vulkan.Types.Struct.External,
+        module Graphics.Vulkan.Types.BaseTypes, VkExtent3D, VkExtent3D',
+        VkExternalImageFormatPropertiesNV,
+        VkExternalImageFormatPropertiesNV',
         module Graphics.Vulkan.Types.Enum.External,
-        module Graphics.Vulkan.Types.Struct.Image,
+        VkImageFormatProperties, VkImageFormatProperties',
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
         -- > #include "vk_platform.h"
         VkGetPhysicalDeviceExternalImageFormatPropertiesNV,
@@ -39,24 +39,27 @@
         module Graphics.Vulkan.Types.Enum.Image,
         module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Struct.External,
+        module Graphics.Vulkan.Types.Struct.Image,
         VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION,
         pattern VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION,
         VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME,
         pattern VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME)
        where
-import           GHC.Ptr                                     (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.External
-import           Graphics.Vulkan.Types.Enum.Format
-import           Graphics.Vulkan.Types.Enum.Image
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.External
-import           Graphics.Vulkan.Types.Struct.Image
+import GHC.Ptr                                     (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.External
+import Graphics.Vulkan.Types.Enum.Format
+import Graphics.Vulkan.Types.Enum.Image
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Struct.Extent
+import Graphics.Vulkan.Types.Struct.External
+import Graphics.Vulkan.Types.Struct.Image
 
 pattern VkGetPhysicalDeviceExternalImageFormatPropertiesNV ::
         CString
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory_win32.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory_win32.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory_win32.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory_win32.hs
@@ -31,9 +31,10 @@
 
         -- ** Required extensions: 'VK_NV_external_memory'.
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.PlatformWin32Khr,
+        VkExportMemoryWin32HandleInfoNV, VkExportMemoryWin32HandleInfoNV',
         module Graphics.Vulkan.Types.Enum.External,
-        module Graphics.Vulkan.Types.Struct.Memory,
+        VkImportMemoryWin32HandleInfoNV, VkImportMemoryWin32HandleInfoNV',
+        VkMemoryAllocateInfo, VkMemoryAllocateInfo',
         module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VkGetMemoryWin32HandleNV, pattern VkGetMemoryWin32HandleNV,
@@ -48,17 +49,21 @@
         pattern VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV,
         pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV)
        where
-import           GHC.Ptr                                       (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Proc                  (VulkanProc (..))
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.External
-import           Graphics.Vulkan.Types.Enum.Result
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Include                 (HANDLE)
-import           Graphics.Vulkan.Types.Struct.Memory
-import           Graphics.Vulkan.Types.Struct.PlatformWin32Khr
+import GHC.Ptr                                       (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Proc                  (VulkanProc (..))
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.External
+import Graphics.Vulkan.Types.Enum.Result
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Handles
+import Graphics.Vulkan.Types.Include                 (HANDLE)
+import Graphics.Vulkan.Types.Struct.Memory           (VkMemoryAllocateInfo,
+                                                      VkMemoryAllocateInfo')
+import Graphics.Vulkan.Types.Struct.PlatformWin32Khr (VkExportMemoryWin32HandleInfoNV,
+                                                      VkExportMemoryWin32HandleInfoNV',
+                                                      VkImportMemoryWin32HandleInfoNV,
+                                                      VkImportMemoryWin32HandleInfoNV')
 
 pattern VkGetMemoryWin32HandleNV :: CString
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_fill_rectangle.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_fill_rectangle.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_fill_rectangle.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_fill_rectangle.hs
@@ -23,9 +23,9 @@
         pattern VK_NV_FILL_RECTANGLE_EXTENSION_NAME,
         pattern VK_POLYGON_MODE_FILL_RECTANGLE_NV)
        where
-import           GHC.Ptr                                (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.PolygonMode (VkPolygonMode (..))
+import GHC.Ptr                                (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.Enum.PolygonMode (VkPolygonMode (..))
 
 pattern VK_NV_FILL_RECTANGLE_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_fragment_coverage_to_color.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_fragment_coverage_to_color.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_fragment_coverage_to_color.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_fragment_coverage_to_color.hs
@@ -19,7 +19,10 @@
         -- Extension number: @150@
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.Pipeline,
+        VkPipelineCoverageToColorStateCreateInfoNV,
+        VkPipelineCoverageToColorStateCreateInfoNV',
+        VkPipelineMultisampleStateCreateInfo,
+        VkPipelineMultisampleStateCreateInfo',
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
         module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
@@ -29,13 +32,16 @@
         pattern VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV)
        where
-import           GHC.Ptr                                     (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Struct.Pipeline
+import GHC.Ptr                                     (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Struct.Pipeline       (VkPipelineCoverageToColorStateCreateInfoNV,
+                                                    VkPipelineCoverageToColorStateCreateInfoNV',
+                                                    VkPipelineMultisampleStateCreateInfo,
+                                                    VkPipelineMultisampleStateCreateInfo')
 
 pattern VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_framebuffer_mixed_samples.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_framebuffer_mixed_samples.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_framebuffer_mixed_samples.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_framebuffer_mixed_samples.hs
@@ -20,7 +20,10 @@
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.CoverageModulationModeNV,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.Pipeline,
+        VkPipelineCoverageModulationStateCreateInfoNV,
+        VkPipelineCoverageModulationStateCreateInfoNV',
+        VkPipelineMultisampleStateCreateInfo,
+        VkPipelineMultisampleStateCreateInfo',
         module Graphics.Vulkan.Types.Enum.SampleCountFlags,
         module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
@@ -30,14 +33,17 @@
         pattern VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV)
        where
-import           GHC.Ptr                                             (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.CoverageModulationModeNV
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Struct.Pipeline
+import GHC.Ptr                                             (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.CoverageModulationModeNV
+import Graphics.Vulkan.Types.Enum.SampleCountFlags
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Struct.Pipeline               (VkPipelineCoverageModulationStateCreateInfoNV,
+                                                            VkPipelineCoverageModulationStateCreateInfoNV',
+                                                            VkPipelineMultisampleStateCreateInfo,
+                                                            VkPipelineMultisampleStateCreateInfo')
 
 pattern VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_geometry_shader_passthrough.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_geometry_shader_passthrough.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_geometry_shader_passthrough.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_geometry_shader_passthrough.hs
@@ -22,8 +22,8 @@
         VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME,
         pattern VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_glsl_shader.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_glsl_shader.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_glsl_shader.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_glsl_shader.hs
@@ -23,9 +23,9 @@
         pattern VK_NV_GLSL_SHADER_EXTENSION_NAME,
         pattern VK_ERROR_INVALID_SHADER_NV)
        where
-import           GHC.Ptr                           (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.Result (VkResult (..))
+import GHC.Ptr                           (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.Enum.Result (VkResult (..))
 
 pattern VK_NV_GLSL_SHADER_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_sample_mask_override_coverage.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_sample_mask_override_coverage.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_sample_mask_override_coverage.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_sample_mask_override_coverage.hs
@@ -22,8 +22,8 @@
         VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME,
         pattern VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_shader_subgroup_partitioned.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_shader_subgroup_partitioned.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_shader_subgroup_partitioned.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_shader_subgroup_partitioned.hs
@@ -23,10 +23,10 @@
         pattern VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME,
         pattern VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV)
        where
-import           GHC.Ptr                                         (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.SubgroupFeatureFlags (VkSubgroupFeatureBitmask (..),
-                                                                  VkSubgroupFeatureFlagBits)
+import GHC.Ptr                                         (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.Enum.SubgroupFeatureFlags (VkSubgroupFeatureBitmask (..),
+                                                        VkSubgroupFeatureFlagBits)
 
 pattern VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_viewport_array2.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_viewport_array2.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_viewport_array2.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_viewport_array2.hs
@@ -22,8 +22,8 @@
         VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME,
         pattern VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME)
        where
-import           GHC.Ptr                 (Ptr (..))
-import           Graphics.Vulkan.Marshal
+import GHC.Ptr                 (Ptr (..))
+import Graphics.Vulkan.Marshal
 
 pattern VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_viewport_swizzle.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_viewport_swizzle.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_viewport_swizzle.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_viewport_swizzle.hs
@@ -17,15 +17,16 @@
         -- type: @device@
         --
         -- Extension number: @99@
-        module Graphics.Vulkan.Types.Struct.Extent,
-        module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.Offset,
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.Pipeline,
-        module Graphics.Vulkan.Types.Struct.Rect,
-        module Graphics.Vulkan.Types.Enum.StructureType,
-        module Graphics.Vulkan.Types.Struct.Viewport,
+        VkExtent2D, VkExtent2D', module Graphics.Vulkan.Types.BaseTypes,
+        VkOffset2D, VkOffset2D', module Graphics.Vulkan.Types.Bitmasks,
+        VkPipelineViewportStateCreateInfo,
+        VkPipelineViewportStateCreateInfo',
+        VkPipelineViewportSwizzleStateCreateInfoNV,
+        VkPipelineViewportSwizzleStateCreateInfoNV', VkRect2D, VkRect2D',
+        module Graphics.Vulkan.Types.Enum.StructureType, VkViewport,
+        VkViewport',
         module Graphics.Vulkan.Types.Enum.ViewportCoordinateSwizzleNV,
+        VkViewportSwizzleNV, VkViewportSwizzleNV',
         -- > #include "vk_platform.h"
         VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION,
         pattern VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION,
@@ -33,17 +34,26 @@
         pattern VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV)
        where
-import           GHC.Ptr                                                (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Enum.ViewportCoordinateSwizzleNV
-import           Graphics.Vulkan.Types.Struct.Extent
-import           Graphics.Vulkan.Types.Struct.Offset
-import           Graphics.Vulkan.Types.Struct.Pipeline
-import           Graphics.Vulkan.Types.Struct.Rect
-import           Graphics.Vulkan.Types.Struct.Viewport
+import GHC.Ptr                                                (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Bitmasks
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Enum.ViewportCoordinateSwizzleNV
+import Graphics.Vulkan.Types.Struct.Extent                    (VkExtent2D,
+                                                               VkExtent2D')
+import Graphics.Vulkan.Types.Struct.Offset                    (VkOffset2D,
+                                                               VkOffset2D')
+import Graphics.Vulkan.Types.Struct.Pipeline                  (VkPipelineViewportStateCreateInfo,
+                                                               VkPipelineViewportStateCreateInfo',
+                                                               VkPipelineViewportSwizzleStateCreateInfoNV,
+                                                               VkPipelineViewportSwizzleStateCreateInfoNV')
+import Graphics.Vulkan.Types.Struct.Rect                      (VkRect2D,
+                                                               VkRect2D')
+import Graphics.Vulkan.Types.Struct.Viewport                  (VkViewport,
+                                                               VkViewport',
+                                                               VkViewportSwizzleNV,
+                                                               VkViewportSwizzleNV')
 
 pattern VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_win32_keyed_mutex.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_win32_keyed_mutex.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_win32_keyed_mutex.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_win32_keyed_mutex.hs
@@ -26,9 +26,9 @@
         -- ** Required extensions: 'VK_NV_external_memory_win32'.
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Enum.Pipeline,
-        module Graphics.Vulkan.Types.Enum.StructureType,
-        module Graphics.Vulkan.Types.Struct.SubmitInfo,
-        module Graphics.Vulkan.Types.Struct.PlatformWin32Khr,
+        module Graphics.Vulkan.Types.Enum.StructureType, VkSubmitInfo,
+        VkSubmitInfo', VkWin32KeyedMutexAcquireReleaseInfoNV,
+        VkWin32KeyedMutexAcquireReleaseInfoNV',
         -- > #include "vk_platform.h"
         VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION,
         pattern VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION,
@@ -36,13 +36,15 @@
         pattern VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV)
        where
-import           GHC.Ptr                                       (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.Pipeline
-import           Graphics.Vulkan.Types.Enum.StructureType
-import           Graphics.Vulkan.Types.Struct.PlatformWin32Khr
-import           Graphics.Vulkan.Types.Struct.SubmitInfo
+import GHC.Ptr                                       (Ptr (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.BaseTypes
+import Graphics.Vulkan.Types.Enum.Pipeline
+import Graphics.Vulkan.Types.Enum.StructureType
+import Graphics.Vulkan.Types.Struct.PlatformWin32Khr (VkWin32KeyedMutexAcquireReleaseInfoNV,
+                                                      VkWin32KeyedMutexAcquireReleaseInfoNV')
+import Graphics.Vulkan.Types.Struct.SubmitInfo       (VkSubmitInfo,
+                                                      VkSubmitInfo')
 
 pattern VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Types/BaseTypes.hs b/src-gen/Graphics/Vulkan/Types/BaseTypes.hs
--- a/src-gen/Graphics/Vulkan/Types/BaseTypes.hs
+++ b/src-gen/Graphics/Vulkan/Types/BaseTypes.hs
@@ -6,12 +6,12 @@
 module Graphics.Vulkan.Types.BaseTypes
        (VkBool32(..), VkDeviceSize(..), VkFlags(..), VkSampleMask(..))
        where
-import           Data.Bits               (Bits, FiniteBits)
-import           Data.Coerce             (coerce)
-import           Data.Data               (Data)
-import           Foreign.Storable        (Storable)
-import           GHC.Generics            (Generic)
-import           Graphics.Vulkan.Marshal (Word32, Word64)
+import Data.Bits               (Bits, FiniteBits)
+import Data.Coerce             (coerce)
+import Data.Data               (Data)
+import Foreign.Storable        (Storable)
+import GHC.Generics            (Generic)
+import Graphics.Vulkan.Marshal (Word32, Word64)
 
 newtype VkBool32 = VkBool32 Word32
                      deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits, FiniteBits,
diff --git a/src-gen/Graphics/Vulkan/Types/Bitmasks.hs b/src-gen/Graphics/Vulkan/Types/Bitmasks.hs
--- a/src-gen/Graphics/Vulkan/Types/Bitmasks.hs
+++ b/src-gen/Graphics/Vulkan/Types/Bitmasks.hs
@@ -49,12 +49,12 @@
         VkWin32SurfaceCreateFlagsKHR(..), VkXcbSurfaceCreateFlagsKHR(..),
         VkXlibSurfaceCreateFlagsKHR(..))
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Coerce                     (coerce)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags)
 
 newtype VkAndroidSurfaceCreateFlagsKHR = VkAndroidSurfaceCreateFlagsKHR VkFlags
                                            deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
diff --git a/src-gen/Graphics/Vulkan/Types/Defines.hs b/src-gen/Graphics/Vulkan/Types/Defines.hs
--- a/src-gen/Graphics/Vulkan/Types/Defines.hs
+++ b/src-gen/Graphics/Vulkan/Types/Defines.hs
@@ -31,8 +31,8 @@
         pattern VK_NULL_HANDLE, _VK_VERSION_MAJOR, _VK_VERSION_MINOR,
         _VK_VERSION_PATCH)
        where
-import           Data.Bits               (Bits (..))
-import           Graphics.Vulkan.Marshal
+import Data.Bits               (Bits (..))
+import Graphics.Vulkan.Marshal
 
 -- | > struct AHardwareBuffer;
 data AHardwareBuffer
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/AccessFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/AccessFlags.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/AccessFlags.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/AccessFlags.hs
@@ -23,16 +23,16 @@
                         VK_ACCESS_MEMORY_READ_BIT, VK_ACCESS_MEMORY_WRITE_BIT),
         VkAccessFlags, VkAccessFlagBits)
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkAccessBitmask (a :: FlagType) = VkAccessBitmask VkFlags
                                             deriving (Eq, Ord, Storable, Data, Generic)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Attachment.hs b/src-gen/Graphics/Vulkan/Types/Enum/Attachment.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Attachment.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Attachment.hs
@@ -20,17 +20,16 @@
         VkAttachmentStoreOp(VkAttachmentStoreOp,
                             VK_ATTACHMENT_STORE_OP_STORE, VK_ATTACHMENT_STORE_OP_DONT_CARE))
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
-                                                  Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType, Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkAttachmentDescriptionBitmask (a ::
                                           FlagType) = VkAttachmentDescriptionBitmask VkFlags
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Blend.hs b/src-gen/Graphics/Vulkan/Types/Enum/Blend.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Blend.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Blend.hs
@@ -25,14 +25,14 @@
                           VK_BLEND_OVERLAP_UNCORRELATED_EXT, VK_BLEND_OVERLAP_DISJOINT_EXT,
                           VK_BLEND_OVERLAP_CONJOINT_EXT))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/BorderColor.hs b/src-gen/Graphics/Vulkan/Types/Enum/BorderColor.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/BorderColor.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/BorderColor.hs
@@ -14,14 +14,14 @@
                       VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE,
                       VK_BORDER_COLOR_INT_OPAQUE_WHITE))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Buffer.hs b/src-gen/Graphics/Vulkan/Types/Enum/Buffer.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Buffer.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Buffer.hs
@@ -28,17 +28,17 @@
         VkBufferUsageFlags, VkBufferUsageFlagBits,
         VkBufferViewCreateFlagBits(..))
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Coerce                     (coerce)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkBufferCreateBitmask (a ::
                                  FlagType) = VkBufferCreateBitmask VkFlags
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/ChromaLocation.hs b/src-gen/Graphics/Vulkan/Types/Enum/ChromaLocation.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/ChromaLocation.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/ChromaLocation.hs
@@ -10,17 +10,17 @@
                          VK_CHROMA_LOCATION_COSITED_EVEN, VK_CHROMA_LOCATION_MIDPOINT),
         VkChromaLocationKHR(..))
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Coerce                     (coerce)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Color.hs b/src-gen/Graphics/Vulkan/Types/Enum/Color.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Color.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Color.hs
@@ -18,17 +18,16 @@
         VkColorSpaceKHR(VkColorSpaceKHR,
                         VK_COLOR_SPACE_SRGB_NONLINEAR_KHR))
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
-                                                  Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType, Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkColorComponentBitmask (a ::
                                    FlagType) = VkColorComponentBitmask VkFlags
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Command.hs b/src-gen/Graphics/Vulkan/Types/Enum/Command.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Command.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Command.hs
@@ -33,17 +33,16 @@
                                   VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT),
         VkCommandPoolResetFlags, VkCommandPoolResetFlagBits)
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
-                                                  Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType, Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/CompareOp.hs b/src-gen/Graphics/Vulkan/Types/Enum/CompareOp.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/CompareOp.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/CompareOp.hs
@@ -11,14 +11,14 @@
                     VK_COMPARE_OP_GREATER, VK_COMPARE_OP_NOT_EQUAL,
                     VK_COMPARE_OP_GREATER_OR_EQUAL, VK_COMPARE_OP_ALWAYS))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/ComponentSwizzle.hs b/src-gen/Graphics/Vulkan/Types/Enum/ComponentSwizzle.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/ComponentSwizzle.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/ComponentSwizzle.hs
@@ -12,14 +12,14 @@
                            VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_B,
                            VK_COMPONENT_SWIZZLE_A))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/CompositeAlphaFlagsKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/CompositeAlphaFlagsKHR.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/CompositeAlphaFlagsKHR.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/CompositeAlphaFlagsKHR.hs
@@ -18,16 +18,16 @@
                                    VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR),
         VkCompositeAlphaFlagsKHR, VkCompositeAlphaFlagBitsKHR)
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkCompositeAlphaBitmaskKHR (a ::
                                       FlagType) = VkCompositeAlphaBitmaskKHR VkFlags
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/ConservativeRasterizationModeEXT.hs b/src-gen/Graphics/Vulkan/Types/Enum/ConservativeRasterizationModeEXT.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/ConservativeRasterizationModeEXT.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/ConservativeRasterizationModeEXT.hs
@@ -11,14 +11,14 @@
                                            VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,
                                            VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/CoverageModulationModeNV.hs b/src-gen/Graphics/Vulkan/Types/Enum/CoverageModulationModeNV.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/CoverageModulationModeNV.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/CoverageModulationModeNV.hs
@@ -12,14 +12,14 @@
                                    VK_COVERAGE_MODULATION_MODE_ALPHA_NV,
                                    VK_COVERAGE_MODULATION_MODE_RGBA_NV))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/CullModeFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/CullModeFlags.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/CullModeFlags.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/CullModeFlags.hs
@@ -15,16 +15,16 @@
                           VK_CULL_MODE_BACK_BIT, VK_CULL_MODE_FRONT_AND_BACK),
         VkCullModeFlags, VkCullModeFlagBits)
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkCullModeBitmask (a ::
                              FlagType) = VkCullModeBitmask VkFlags
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Debug.hs b/src-gen/Graphics/Vulkan/Types/Enum/Debug.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Debug.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Debug.hs
@@ -70,17 +70,16 @@
         VkDebugUtilsMessageTypeFlagsEXT,
         VkDebugUtilsMessageTypeFlagBitsEXT)
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
-                                                  Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType, Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkDebugReportBitmaskEXT (a ::
                                    FlagType) = VkDebugReportBitmaskEXT VkFlags
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/DependencyFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/DependencyFlags.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/DependencyFlags.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/DependencyFlags.hs
@@ -14,16 +14,16 @@
                             VkDependencyFlagBits, VK_DEPENDENCY_BY_REGION_BIT),
         VkDependencyFlags, VkDependencyFlagBits)
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkDependencyBitmask (a ::
                                FlagType) = VkDependencyBitmask VkFlags
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Descriptor.hs b/src-gen/Graphics/Vulkan/Types/Enum/Descriptor.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Descriptor.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Descriptor.hs
@@ -40,18 +40,17 @@
                                        VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET),
         VkDescriptorUpdateTemplateTypeKHR(..))
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
-                                                  Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Coerce                     (coerce)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType, Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkDescriptorBindingBitmaskEXT (a ::
                                          FlagType) = VkDescriptorBindingBitmaskEXT VkFlags
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Device.hs b/src-gen/Graphics/Vulkan/Types/Enum/Device.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Device.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Device.hs
@@ -26,18 +26,17 @@
                                    VkDeviceQueueCreateFlags, VkDeviceQueueCreateFlagBits),
         VkDeviceQueueCreateFlags, VkDeviceQueueCreateFlagBits)
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
-                                                  Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Coerce                     (coerce)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType, Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkDeviceCreateFlagBits = VkDeviceCreateFlagBits VkFlags
                                    deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/DiscardRectangleModeEXT.hs b/src-gen/Graphics/Vulkan/Types/Enum/DiscardRectangleModeEXT.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/DiscardRectangleModeEXT.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/DiscardRectangleModeEXT.hs
@@ -10,14 +10,14 @@
                                   VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
                                   VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Display.hs b/src-gen/Graphics/Vulkan/Types/Enum/Display.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Display.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Display.hs
@@ -23,17 +23,16 @@
                                VK_DISPLAY_POWER_STATE_OFF_EXT, VK_DISPLAY_POWER_STATE_SUSPEND_EXT,
                                VK_DISPLAY_POWER_STATE_ON_EXT))
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
-                                                  Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType, Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/DynamicState.hs b/src-gen/Graphics/Vulkan/Types/Enum/DynamicState.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/DynamicState.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/DynamicState.hs
@@ -14,14 +14,14 @@
                        VK_DYNAMIC_STATE_STENCIL_WRITE_MASK,
                        VK_DYNAMIC_STATE_STENCIL_REFERENCE))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/External.hs b/src-gen/Graphics/Vulkan/Types/Enum/External.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/External.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/External.hs
@@ -82,17 +82,17 @@
         VkExternalSemaphoreHandleTypeFlags,
         VkExternalSemaphoreHandleTypeFlagBits)
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Coerce                     (coerce)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBitsKHR VkFlags
                                               deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Fence.hs b/src-gen/Graphics/Vulkan/Types/Enum/Fence.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Fence.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Fence.hs
@@ -18,17 +18,17 @@
                              VkFenceImportFlagBits, VK_FENCE_IMPORT_TEMPORARY_BIT),
         VkFenceImportFlags, VkFenceImportFlagBits)
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Coerce                     (coerce)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkFenceCreateBitmask (a ::
                                 FlagType) = VkFenceCreateBitmask VkFlags
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Filter.hs b/src-gen/Graphics/Vulkan/Types/Enum/Filter.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Filter.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Filter.hs
@@ -7,14 +7,14 @@
 {-# LANGUAGE Strict                     #-}
 module Graphics.Vulkan.Types.Enum.Filter
        (VkFilter(VkFilter, VK_FILTER_NEAREST, VK_FILTER_LINEAR)) where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Format.hs b/src-gen/Graphics/Vulkan/Types/Enum/Format.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Format.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Format.hs
@@ -124,17 +124,16 @@
                                VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT),
         VkFormatFeatureFlags, VkFormatFeatureFlagBits)
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
-                                                  Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType, Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | Vulkan format definitions
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/FramebufferCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/FramebufferCreateFlagBits.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/FramebufferCreateFlagBits.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/FramebufferCreateFlagBits.hs
@@ -5,12 +5,12 @@
 {-# LANGUAGE Strict                     #-}
 module Graphics.Vulkan.Types.Enum.FramebufferCreateFlagBits
        (VkFramebufferCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Coerce                     (coerce)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags)
 
 newtype VkFramebufferCreateFlagBits = VkFramebufferCreateFlagBits VkFlags
                                         deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/FrontFace.hs b/src-gen/Graphics/Vulkan/Types/Enum/FrontFace.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/FrontFace.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/FrontFace.hs
@@ -9,14 +9,14 @@
        (VkFrontFace(VkFrontFace, VK_FRONT_FACE_COUNTER_CLOCKWISE,
                     VK_FRONT_FACE_CLOCKWISE))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Image.hs b/src-gen/Graphics/Vulkan/Types/Enum/Image.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Image.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Image.hs
@@ -47,17 +47,16 @@
                         VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY,
                         VK_IMAGE_VIEW_TYPE_2D_ARRAY, VK_IMAGE_VIEW_TYPE_CUBE_ARRAY))
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
-                                                  Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType, Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkImageAspectBitmask (a ::
                                 FlagType) = VkImageAspectBitmask VkFlags
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/IndexType.hs b/src-gen/Graphics/Vulkan/Types/Enum/IndexType.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/IndexType.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/IndexType.hs
@@ -9,14 +9,14 @@
        (VkIndexType(VkIndexType, VK_INDEX_TYPE_UINT16,
                     VK_INDEX_TYPE_UINT32))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/IndirectCommands.hs b/src-gen/Graphics/Vulkan/Types/Enum/IndirectCommands.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/IndirectCommands.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/IndirectCommands.hs
@@ -29,17 +29,16 @@
                                        VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX,
                                        VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX))
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
-                                                  Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType, Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkIndirectCommandsLayoutUsageBitmaskNVX (a ::
                                                    FlagType) = VkIndirectCommandsLayoutUsageBitmaskNVX VkFlags
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/InstanceCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/InstanceCreateFlagBits.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/InstanceCreateFlagBits.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/InstanceCreateFlagBits.hs
@@ -5,12 +5,12 @@
 {-# LANGUAGE Strict                     #-}
 module Graphics.Vulkan.Types.Enum.InstanceCreateFlagBits
        (VkInstanceCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Coerce                     (coerce)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags)
 
 newtype VkInstanceCreateFlagBits = VkInstanceCreateFlagBits VkFlags
                                      deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/InternalAllocationType.hs b/src-gen/Graphics/Vulkan/Types/Enum/InternalAllocationType.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/InternalAllocationType.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/InternalAllocationType.hs
@@ -9,14 +9,14 @@
        (VkInternalAllocationType(VkInternalAllocationType,
                                  VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/LogicOp.hs b/src-gen/Graphics/Vulkan/Types/Enum/LogicOp.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/LogicOp.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/LogicOp.hs
@@ -14,14 +14,14 @@
                   VK_LOGIC_OP_COPY_INVERTED, VK_LOGIC_OP_OR_INVERTED,
                   VK_LOGIC_OP_NAND, VK_LOGIC_OP_SET))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Memory.hs b/src-gen/Graphics/Vulkan/Types/Enum/Memory.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Memory.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Memory.hs
@@ -27,17 +27,17 @@
                                 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT),
         VkMemoryPropertyFlags, VkMemoryPropertyFlagBits)
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Coerce                     (coerce)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBitsKHR VkFlags
                                         deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Object.hs b/src-gen/Graphics/Vulkan/Types/Enum/Object.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Object.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Object.hs
@@ -35,17 +35,16 @@
                      VK_OBJECT_TYPE_DESCRIPTOR_POOL, VK_OBJECT_TYPE_DESCRIPTOR_SET,
                      VK_OBJECT_TYPE_FRAMEBUFFER, VK_OBJECT_TYPE_COMMAND_POOL))
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
-                                                  Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType, Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/PeerMemoryFeatureFlag.hs b/src-gen/Graphics/Vulkan/Types/Enum/PeerMemoryFeatureFlag.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/PeerMemoryFeatureFlag.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/PeerMemoryFeatureFlag.hs
@@ -19,17 +19,17 @@
                                    VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT),
         VkPeerMemoryFeatureFlags, VkPeerMemoryFeatureFlagBits)
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Coerce                     (coerce)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBitsKHR VkFlags
                                            deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/PhysicalDeviceType.hs b/src-gen/Graphics/Vulkan/Types/Enum/PhysicalDeviceType.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/PhysicalDeviceType.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/PhysicalDeviceType.hs
@@ -12,14 +12,14 @@
                              VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
                              VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU, VK_PHYSICAL_DEVICE_TYPE_CPU))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Pipeline.hs b/src-gen/Graphics/Vulkan/Types/Enum/Pipeline.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Pipeline.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Pipeline.hs
@@ -52,18 +52,17 @@
         VkPipelineVertexInputStateCreateFlagBits(..),
         VkPipelineViewportStateCreateFlagBits(..))
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
-                                                  Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Coerce                     (coerce)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType, Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/PointClippingBehavior.hs b/src-gen/Graphics/Vulkan/Types/Enum/PointClippingBehavior.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/PointClippingBehavior.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/PointClippingBehavior.hs
@@ -11,17 +11,17 @@
                                 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY),
         VkPointClippingBehaviorKHR(..))
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Coerce                     (coerce)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/PolygonMode.hs b/src-gen/Graphics/Vulkan/Types/Enum/PolygonMode.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/PolygonMode.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/PolygonMode.hs
@@ -9,14 +9,14 @@
        (VkPolygonMode(VkPolygonMode, VK_POLYGON_MODE_FILL,
                       VK_POLYGON_MODE_LINE, VK_POLYGON_MODE_POINT))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/PresentModeKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/PresentModeKHR.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/PresentModeKHR.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/PresentModeKHR.hs
@@ -10,14 +10,14 @@
                          VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_FIFO_KHR,
                          VK_PRESENT_MODE_FIFO_RELAXED_KHR))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/PrimitiveTopology.hs b/src-gen/Graphics/Vulkan/Types/Enum/PrimitiveTopology.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/PrimitiveTopology.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/PrimitiveTopology.hs
@@ -18,14 +18,14 @@
                             VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,
                             VK_PRIMITIVE_TOPOLOGY_PATCH_LIST))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Query.hs b/src-gen/Graphics/Vulkan/Types/Enum/Query.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Query.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Query.hs
@@ -37,18 +37,17 @@
         VkQueryType(VkQueryType, VK_QUERY_TYPE_OCCLUSION,
                     VK_QUERY_TYPE_PIPELINE_STATISTICS, VK_QUERY_TYPE_TIMESTAMP))
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
-                                                  Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Coerce                     (coerce)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType, Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkQueryControlBitmask (a ::
                                  FlagType) = VkQueryControlBitmask VkFlags
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Queue.hs b/src-gen/Graphics/Vulkan/Types/Enum/Queue.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Queue.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Queue.hs
@@ -20,17 +20,16 @@
                                  VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT,
                                  VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT))
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
-                                                  Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType, Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkQueueBitmask (a :: FlagType) = VkQueueBitmask VkFlags
                                            deriving (Eq, Ord, Storable, Data, Generic)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/RasterizationOrderAMD.hs b/src-gen/Graphics/Vulkan/Types/Enum/RasterizationOrderAMD.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/RasterizationOrderAMD.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/RasterizationOrderAMD.hs
@@ -10,14 +10,14 @@
                                 VK_RASTERIZATION_ORDER_STRICT_AMD,
                                 VK_RASTERIZATION_ORDER_RELAXED_AMD))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/RenderPassCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/RenderPassCreateFlagBits.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/RenderPassCreateFlagBits.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/RenderPassCreateFlagBits.hs
@@ -5,12 +5,12 @@
 {-# LANGUAGE Strict                     #-}
 module Graphics.Vulkan.Types.Enum.RenderPassCreateFlagBits
        (VkRenderPassCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Coerce                     (coerce)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags)
 
 newtype VkRenderPassCreateFlagBits = VkRenderPassCreateFlagBits VkFlags
                                        deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Result.hs b/src-gen/Graphics/Vulkan/Types/Enum/Result.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Result.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Result.hs
@@ -15,14 +15,14 @@
                  VK_ERROR_INCOMPATIBLE_DRIVER, VK_ERROR_TOO_MANY_OBJECTS,
                  VK_ERROR_FORMAT_NOT_SUPPORTED, VK_ERROR_FRAGMENTED_POOL))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | API result codes
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/SampleCountFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/SampleCountFlags.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/SampleCountFlags.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/SampleCountFlags.hs
@@ -17,16 +17,16 @@
                              VK_SAMPLE_COUNT_32_BIT, VK_SAMPLE_COUNT_64_BIT),
         VkSampleCountFlags, VkSampleCountFlagBits)
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkSampleCountBitmask (a ::
                                 FlagType) = VkSampleCountBitmask VkFlags
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Sampler.hs b/src-gen/Graphics/Vulkan/Types/Enum/Sampler.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Sampler.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Sampler.hs
@@ -30,17 +30,17 @@
                             VK_SAMPLER_YCBCR_RANGE_ITU_NARROW),
         VkSamplerYcbcrRangeKHR(..))
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Coerce                     (coerce)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/SemaphoreImportFlag.hs b/src-gen/Graphics/Vulkan/Types/Enum/SemaphoreImportFlag.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/SemaphoreImportFlag.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/SemaphoreImportFlag.hs
@@ -16,17 +16,17 @@
                                  VK_SEMAPHORE_IMPORT_TEMPORARY_BIT),
         VkSemaphoreImportFlags, VkSemaphoreImportFlagBits)
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Coerce                     (coerce)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBitsKHR VkFlags
                                          deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Shader.hs b/src-gen/Graphics/Vulkan/Types/Enum/Shader.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Shader.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Shader.hs
@@ -22,17 +22,16 @@
                              VK_SHADER_STAGE_ALL),
         VkShaderStageFlags, VkShaderStageFlagBits)
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
-                                                  Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType, Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/SharingMode.hs b/src-gen/Graphics/Vulkan/Types/Enum/SharingMode.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/SharingMode.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/SharingMode.hs
@@ -9,14 +9,14 @@
        (VkSharingMode(VkSharingMode, VK_SHARING_MODE_EXCLUSIVE,
                       VK_SHARING_MODE_CONCURRENT))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Sparse.hs b/src-gen/Graphics/Vulkan/Types/Enum/Sparse.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Sparse.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Sparse.hs
@@ -21,16 +21,16 @@
                                   VK_SPARSE_MEMORY_BIND_METADATA_BIT),
         VkSparseMemoryBindFlags, VkSparseMemoryBindFlagBits)
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkSparseImageFormatBitmask (a ::
                                       FlagType) = VkSparseImageFormatBitmask VkFlags
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Stencil.hs b/src-gen/Graphics/Vulkan/Types/Enum/Stencil.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Stencil.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Stencil.hs
@@ -20,17 +20,16 @@
                     VK_STENCIL_OP_INCREMENT_AND_WRAP,
                     VK_STENCIL_OP_DECREMENT_AND_WRAP))
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
-                                                  Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType, Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkStencilFaceBitmask (a ::
                                 FlagType) = VkStencilFaceBitmask VkFlags
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/StructureType.hs b/src-gen/Graphics/Vulkan/Types/Enum/StructureType.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/StructureType.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/StructureType.hs
@@ -57,14 +57,14 @@
                         VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO,
                         VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | Structure type enumerant
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/SubgroupFeatureFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/SubgroupFeatureFlags.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/SubgroupFeatureFlags.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/SubgroupFeatureFlags.hs
@@ -19,16 +19,16 @@
                                  VK_SUBGROUP_FEATURE_CLUSTERED_BIT, VK_SUBGROUP_FEATURE_QUAD_BIT),
         VkSubgroupFeatureFlags, VkSubgroupFeatureFlagBits)
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkSubgroupFeatureBitmask (a ::
                                     FlagType) = VkSubgroupFeatureBitmask VkFlags
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Subpass.hs b/src-gen/Graphics/Vulkan/Types/Enum/Subpass.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Subpass.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Subpass.hs
@@ -16,17 +16,16 @@
                                     VkSubpassDescriptionFlags, VkSubpassDescriptionFlagBits),
         VkSubpassDescriptionFlags, VkSubpassDescriptionFlagBits)
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
-                                                  Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType, Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Surface.hs b/src-gen/Graphics/Vulkan/Types/Enum/Surface.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/Surface.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Surface.hs
@@ -27,16 +27,16 @@
                                      VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR),
         VkSurfaceTransformFlagsKHR, VkSurfaceTransformFlagBitsKHR)
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkSurfaceCounterBitmaskEXT (a ::
                                       FlagType) = VkSurfaceCounterBitmaskEXT VkFlags
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/SwapchainCreateFlagsKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/SwapchainCreateFlagsKHR.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/SwapchainCreateFlagsKHR.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/SwapchainCreateFlagsKHR.hs
@@ -14,16 +14,16 @@
                                     VkSwapchainCreateFlagsKHR, VkSwapchainCreateFlagBitsKHR),
         VkSwapchainCreateFlagsKHR, VkSwapchainCreateFlagBitsKHR)
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 newtype VkSwapchainCreateBitmaskKHR (a ::
                                        FlagType) = VkSwapchainCreateBitmaskKHR VkFlags
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/SystemAllocationScope.hs b/src-gen/Graphics/Vulkan/Types/Enum/SystemAllocationScope.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/SystemAllocationScope.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/SystemAllocationScope.hs
@@ -13,14 +13,14 @@
                                 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE,
                                 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/TessellationDomainOrigin.hs b/src-gen/Graphics/Vulkan/Types/Enum/TessellationDomainOrigin.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/TessellationDomainOrigin.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/TessellationDomainOrigin.hs
@@ -11,17 +11,17 @@
                                    VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT),
         VkTessellationDomainOriginKHR(..))
        where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Bits                       (Bits, FiniteBits)
+import Data.Coerce                     (coerce)
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Graphics.Vulkan.Types.BaseTypes (VkFlags)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/ValidationC.hs b/src-gen/Graphics/Vulkan/Types/Enum/ValidationC.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/ValidationC.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/ValidationC.hs
@@ -11,14 +11,14 @@
         VkValidationCheckEXT(VkValidationCheckEXT,
                              VK_VALIDATION_CHECK_ALL_EXT, VK_VALIDATION_CHECK_SHADERS_EXT))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VertexInputRate.hs b/src-gen/Graphics/Vulkan/Types/Enum/VertexInputRate.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/VertexInputRate.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/VertexInputRate.hs
@@ -9,14 +9,14 @@
        (VkVertexInputRate(VkVertexInputRate, VK_VERTEX_INPUT_RATE_VERTEX,
                           VK_VERTEX_INPUT_RATE_INSTANCE))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/ViewportCoordinateSwizzleNV.hs b/src-gen/Graphics/Vulkan/Types/Enum/ViewportCoordinateSwizzleNV.hs
--- a/src-gen/Graphics/Vulkan/Types/Enum/ViewportCoordinateSwizzleNV.hs
+++ b/src-gen/Graphics/Vulkan/Types/Enum/ViewportCoordinateSwizzleNV.hs
@@ -16,14 +16,14 @@
                                       VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV,
                                       VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV))
        where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
+import Data.Data                       (Data)
+import Foreign.Storable                (Storable)
+import GHC.Generics                    (Generic)
+import GHC.Read                        (choose, expectP)
+import Graphics.Vulkan.Marshal         (Int32)
+import Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import Text.Read                       (Read (..), parens)
+import Text.Read.Lex                   (Lexeme (..))
 
 -- | type = @enum@
 --
diff --git a/src-gen/Graphics/Vulkan/Types/Funcpointers.hs b/src-gen/Graphics/Vulkan/Types/Funcpointers.hs
--- a/src-gen/Graphics/Vulkan/Types/Funcpointers.hs
+++ b/src-gen/Graphics/Vulkan/Types/Funcpointers.hs
@@ -21,19 +21,19 @@
         PFN_vkVoidFunction, HS_vkVoidFunction, newVkVoidFunction,
         unwrapVkVoidFunction)
        where
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes                                 (VkBool32 (..),
-                                                                                  VkFlags (..))
-import           Graphics.Vulkan.Types.Enum.Debug                                (VkDebugReportBitmaskEXT (..),
-                                                                                  VkDebugReportFlagsEXT,
-                                                                                  VkDebugReportObjectTypeEXT (..),
-                                                                                  VkDebugUtilsMessageSeverityBitmaskEXT (..),
-                                                                                  VkDebugUtilsMessageSeverityFlagBitsEXT,
-                                                                                  VkDebugUtilsMessageTypeBitmaskEXT (..),
-                                                                                  VkDebugUtilsMessageTypeFlagsEXT)
-import           Graphics.Vulkan.Types.Enum.InternalAllocationType               (VkInternalAllocationType (..))
-import           Graphics.Vulkan.Types.Enum.SystemAllocationScope                (VkSystemAllocationScope (..))
-import           Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCallbackDataEXT (VkDebugUtilsMessengerCallbackDataEXT (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Types.BaseTypes                                 (VkBool32 (..),
+                                                                        VkFlags (..))
+import Graphics.Vulkan.Types.Enum.Debug                                (VkDebugReportBitmaskEXT (..),
+                                                                        VkDebugReportFlagsEXT,
+                                                                        VkDebugReportObjectTypeEXT (..),
+                                                                        VkDebugUtilsMessageSeverityBitmaskEXT (..),
+                                                                        VkDebugUtilsMessageSeverityFlagBitsEXT,
+                                                                        VkDebugUtilsMessageTypeBitmaskEXT (..),
+                                                                        VkDebugUtilsMessageTypeFlagsEXT)
+import Graphics.Vulkan.Types.Enum.InternalAllocationType               (VkInternalAllocationType (..))
+import Graphics.Vulkan.Types.Enum.SystemAllocationScope                (VkSystemAllocationScope (..))
+import Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCallbackDataEXT (VkDebugUtilsMessengerCallbackDataEXT)
 
 type HS_vkAllocationFunction =
      Ptr Void ->
diff --git a/src-gen/Graphics/Vulkan/Types/Handles.hs b/src-gen/Graphics/Vulkan/Types/Handles.hs
--- a/src-gen/Graphics/Vulkan/Types/Handles.hs
+++ b/src-gen/Graphics/Vulkan/Types/Handles.hs
@@ -28,7 +28,7 @@
         VkSurfaceKHR, VkSurfaceKHR_T(), VkSwapchainKHR, VkSwapchainKHR_T(),
         VkValidationCacheEXT, VkValidationCacheEXT_T())
        where
-import           Graphics.Vulkan.Marshal (Ptr, VkPtr)
+import Graphics.Vulkan.Marshal (Ptr, VkPtr)
 
 type VkBuffer = VkPtr VkBuffer_T
 
diff --git a/src-gen/Graphics/Vulkan/Types/Include.hs b/src-gen/Graphics/Vulkan/Types/Include.hs
--- a/src-gen/Graphics/Vulkan/Types/Include.hs
+++ b/src-gen/Graphics/Vulkan/Types/Include.hs
@@ -7,7 +7,7 @@
         MirSurface, RROutput, SECURITY_ATTRIBUTES, VisualID, Window,
         WlDisplay, WlSurface, XcbConnectionT, XcbVisualidT, XcbWindowT)
        where
-import           Graphics.Vulkan.Marshal (CULong (..), CWchar (..), Ptr, Word32)
+import Graphics.Vulkan.Marshal (CULong (..), CWchar (..), Ptr, Word32)
 
 -- | Requires @windows.h@
 type DWORD = Word32
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/AcquireNextImageInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/AcquireNextImageInfoKHR.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/AcquireNextImageInfoKHR.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/AcquireNextImageInfoKHR.hsc
@@ -8,17 +8,14 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.AcquireNextImageInfoKHR
-       (VkAcquireNextImageInfoKHR(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles            (VkFence, VkSemaphore,
-                                                           VkSwapchainKHR)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkAcquireNextImageInfoKHR, VkAcquireNextImageInfoKHR') where -- ' closing tick for hsc2hs
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Handles            (VkFence, VkSemaphore,
+                                                 VkSwapchainKHR)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkAcquireNextImageInfoKHR {
 --   >     VkStructureType sType;
@@ -31,18 +28,18 @@
 --   > } VkAcquireNextImageInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkAcquireNextImageInfoKHR VkAcquireNextImageInfoKHR registry at www.khronos.org>
-data VkAcquireNextImageInfoKHR = VkAcquireNextImageInfoKHR## Addr##
-                                                            ByteArray##
+type VkAcquireNextImageInfoKHR =
+     VulkanStruct VkAcquireNextImageInfoKHR' -- ' closing tick for hsc2hs
 
+data VkAcquireNextImageInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkAcquireNextImageInfoKHR where
-        (VkAcquireNextImageInfoKHR## a _) ==
-          x@(VkAcquireNextImageInfoKHR## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkAcquireNextImageInfoKHR where
-        (VkAcquireNextImageInfoKHR## a _) `compare`
-          x@(VkAcquireNextImageInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -59,19 +56,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkAcquireNextImageInfoKHR where
-        unsafeAddr (VkAcquireNextImageInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkAcquireNextImageInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkAcquireNextImageInfoKHR## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkAcquireNextImageInfoKHR where
         type StructFields VkAcquireNextImageInfoKHR =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc b/src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc
@@ -8,19 +8,16 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.AllocationCallbacks
-       (VkAllocationCallbacks(..)) where
-import           Foreign.Storable                   (Storable (..))
-import           GHC.Base                           (Addr##, ByteArray##,
-                                                     byteArrayContents##,
-                                                     plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Funcpointers (PFN_vkAllocationFunction,
-                                                     PFN_vkFreeFunction,
-                                                     PFN_vkInternalAllocationNotification,
-                                                     PFN_vkInternalFreeNotification,
-                                                     PFN_vkReallocationFunction)
-import           System.IO.Unsafe                   (unsafeDupablePerformIO)
+       (VkAllocationCallbacks, VkAllocationCallbacks') where -- ' closing tick for hsc2hs
+import Foreign.Storable                   (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Funcpointers (PFN_vkAllocationFunction,
+                                           PFN_vkFreeFunction,
+                                           PFN_vkInternalAllocationNotification,
+                                           PFN_vkInternalFreeNotification,
+                                           PFN_vkReallocationFunction)
+import System.IO.Unsafe                   (unsafeDupablePerformIO)
 
 -- | > typedef struct VkAllocationCallbacks {
 --   >     void*           pUserData;
@@ -32,18 +29,17 @@
 --   > } VkAllocationCallbacks;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkAllocationCallbacks VkAllocationCallbacks registry at www.khronos.org>
-data VkAllocationCallbacks = VkAllocationCallbacks## Addr##
-                                                    ByteArray##
+type VkAllocationCallbacks = VulkanStruct VkAllocationCallbacks' -- ' closing tick for hsc2hs
 
+data VkAllocationCallbacks' -- ' closing tick for hsc2hs
+
 instance Eq VkAllocationCallbacks where
-        (VkAllocationCallbacks## a _) == x@(VkAllocationCallbacks## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkAllocationCallbacks where
-        (VkAllocationCallbacks## a _) `compare`
-          x@(VkAllocationCallbacks## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -60,18 +56,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkAllocationCallbacks where
-        unsafeAddr (VkAllocationCallbacks## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkAllocationCallbacks## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkAllocationCallbacks## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkAllocationCallbacks where
         type StructFields VkAllocationCallbacks =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/ApplicationInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/ApplicationInfo.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/ApplicationInfo.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/ApplicationInfo.hsc
@@ -8,15 +8,12 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.ApplicationInfo
-       (VkApplicationInfo(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkApplicationInfo, VkApplicationInfo') where -- ' closing tick for hsc2hs
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkApplicationInfo {
 --   >     VkStructureType sType;
@@ -29,17 +26,17 @@
 --   > } VkApplicationInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkApplicationInfo VkApplicationInfo registry at www.khronos.org>
-data VkApplicationInfo = VkApplicationInfo## Addr## ByteArray##
+type VkApplicationInfo = VulkanStruct VkApplicationInfo' -- ' closing tick for hsc2hs
 
+data VkApplicationInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkApplicationInfo where
-        (VkApplicationInfo## a _) == x@(VkApplicationInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkApplicationInfo where
-        (VkApplicationInfo## a _) `compare` x@(VkApplicationInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -56,18 +53,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkApplicationInfo where
-        unsafeAddr (VkApplicationInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkApplicationInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkApplicationInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkApplicationInfo where
         type StructFields VkApplicationInfo =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Attachment.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Attachment.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Attachment.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Attachment.hsc
@@ -8,23 +8,21 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Attachment
-       (VkAttachmentDescription(..), VkAttachmentReference(..),
-        VkAttachmentSampleLocationsEXT(..))
+       (VkAttachmentDescription, VkAttachmentDescription', -- ' closing tick for hsc2hs
+        VkAttachmentReference, VkAttachmentReference', -- ' closing tick for hsc2hs
+        VkAttachmentSampleLocationsEXT, VkAttachmentSampleLocationsEXT') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                            (Storable (..))
-import           GHC.Base                                    (Addr##, ByteArray##,
-                                                              byteArrayContents##,
-                                                              plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.Attachment       (VkAttachmentDescriptionFlags,
-                                                              VkAttachmentLoadOp,
-                                                              VkAttachmentStoreOp)
-import           Graphics.Vulkan.Types.Enum.Format           (VkFormat)
-import           Graphics.Vulkan.Types.Enum.Image            (VkImageLayout)
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags (VkSampleCountFlagBits)
-import           Graphics.Vulkan.Types.Struct.SampleLocation (VkSampleLocationsInfoEXT)
-import           System.IO.Unsafe                            (unsafeDupablePerformIO)
+import Foreign.Storable                            (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.Attachment       (VkAttachmentDescriptionFlags,
+                                                    VkAttachmentLoadOp,
+                                                    VkAttachmentStoreOp)
+import Graphics.Vulkan.Types.Enum.Format           (VkFormat)
+import Graphics.Vulkan.Types.Enum.Image            (VkImageLayout)
+import Graphics.Vulkan.Types.Enum.SampleCountFlags (VkSampleCountFlagBits)
+import Graphics.Vulkan.Types.Struct.SampleLocation (VkSampleLocationsInfoEXT)
+import System.IO.Unsafe                            (unsafeDupablePerformIO)
 
 -- | > typedef struct VkAttachmentDescription {
 --   >     VkAttachmentDescriptionFlags flags;
@@ -39,18 +37,18 @@
 --   > } VkAttachmentDescription;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkAttachmentDescription VkAttachmentDescription registry at www.khronos.org>
-data VkAttachmentDescription = VkAttachmentDescription## Addr##
-                                                        ByteArray##
+type VkAttachmentDescription =
+     VulkanStruct VkAttachmentDescription' -- ' closing tick for hsc2hs
 
+data VkAttachmentDescription' -- ' closing tick for hsc2hs
+
 instance Eq VkAttachmentDescription where
-        (VkAttachmentDescription## a _) == x@(VkAttachmentDescription## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkAttachmentDescription where
-        (VkAttachmentDescription## a _) `compare`
-          x@(VkAttachmentDescription## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -68,18 +66,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkAttachmentDescription where
-        unsafeAddr (VkAttachmentDescription## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkAttachmentDescription## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkAttachmentDescription## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkAttachmentDescription where
         type StructFields VkAttachmentDescription =
              '["flags", "format", "samples", "loadOp", "storeOp", -- ' closing tick for hsc2hs
@@ -421,18 +407,17 @@
 --   > } VkAttachmentReference;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkAttachmentReference VkAttachmentReference registry at www.khronos.org>
-data VkAttachmentReference = VkAttachmentReference## Addr##
-                                                    ByteArray##
+type VkAttachmentReference = VulkanStruct VkAttachmentReference' -- ' closing tick for hsc2hs
 
+data VkAttachmentReference' -- ' closing tick for hsc2hs
+
 instance Eq VkAttachmentReference where
-        (VkAttachmentReference## a _) == x@(VkAttachmentReference## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkAttachmentReference where
-        (VkAttachmentReference## a _) `compare`
-          x@(VkAttachmentReference## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -450,18 +435,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkAttachmentReference where
-        unsafeAddr (VkAttachmentReference## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkAttachmentReference## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkAttachmentReference## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkAttachmentReference where
         type StructFields VkAttachmentReference = '["attachment", "layout"] -- ' closing tick for hsc2hs
         type CUnionType VkAttachmentReference = 'False -- ' closing tick for hsc2hs
@@ -546,19 +519,18 @@
 --   > } VkAttachmentSampleLocationsEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkAttachmentSampleLocationsEXT VkAttachmentSampleLocationsEXT registry at www.khronos.org>
-data VkAttachmentSampleLocationsEXT = VkAttachmentSampleLocationsEXT## Addr##
-                                                                      ByteArray##
+type VkAttachmentSampleLocationsEXT =
+     VulkanStruct VkAttachmentSampleLocationsEXT' -- ' closing tick for hsc2hs
 
+data VkAttachmentSampleLocationsEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkAttachmentSampleLocationsEXT where
-        (VkAttachmentSampleLocationsEXT## a _) ==
-          x@(VkAttachmentSampleLocationsEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkAttachmentSampleLocationsEXT where
-        (VkAttachmentSampleLocationsEXT## a _) `compare`
-          x@(VkAttachmentSampleLocationsEXT## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -576,20 +548,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkAttachmentSampleLocationsEXT where
-        unsafeAddr (VkAttachmentSampleLocationsEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkAttachmentSampleLocationsEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkAttachmentSampleLocationsEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkAttachmentSampleLocationsEXT where
         type StructFields VkAttachmentSampleLocationsEXT =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Base.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Base.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Base.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Base.hsc
@@ -8,15 +8,14 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Base
-       (VkBaseInStructure(..), VkBaseOutStructure(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkBaseInStructure, VkBaseInStructure', VkBaseOutStructure, -- ' closing tick for hsc2hs
+        VkBaseOutStructure') -- ' closing tick for hsc2hs
+       where
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkBaseInStructure {
 --   >     VkStructureType sType;
@@ -24,17 +23,17 @@
 --   > } VkBaseInStructure;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBaseInStructure VkBaseInStructure registry at www.khronos.org>
-data VkBaseInStructure = VkBaseInStructure## Addr## ByteArray##
+type VkBaseInStructure = VulkanStruct VkBaseInStructure' -- ' closing tick for hsc2hs
 
+data VkBaseInStructure' -- ' closing tick for hsc2hs
+
 instance Eq VkBaseInStructure where
-        (VkBaseInStructure## a _) == x@(VkBaseInStructure## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkBaseInStructure where
-        (VkBaseInStructure## a _) `compare` x@(VkBaseInStructure## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -52,18 +51,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkBaseInStructure where
-        unsafeAddr (VkBaseInStructure## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBaseInStructure## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBaseInStructure## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkBaseInStructure where
         type StructFields VkBaseInStructure = '["sType", "pNext"] -- ' closing tick for hsc2hs
         type CUnionType VkBaseInStructure = 'False -- ' closing tick for hsc2hs
@@ -147,17 +134,17 @@
 --   > } VkBaseOutStructure;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBaseOutStructure VkBaseOutStructure registry at www.khronos.org>
-data VkBaseOutStructure = VkBaseOutStructure## Addr## ByteArray##
+type VkBaseOutStructure = VulkanStruct VkBaseOutStructure' -- ' closing tick for hsc2hs
 
+data VkBaseOutStructure' -- ' closing tick for hsc2hs
+
 instance Eq VkBaseOutStructure where
-        (VkBaseOutStructure## a _) == x@(VkBaseOutStructure## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkBaseOutStructure where
-        (VkBaseOutStructure## a _) `compare` x@(VkBaseOutStructure## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -174,18 +161,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkBaseOutStructure where
-        unsafeAddr (VkBaseOutStructure## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBaseOutStructure## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBaseOutStructure## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkBaseOutStructure where
         type StructFields VkBaseOutStructure = '["sType", "pNext"] -- ' closing tick for hsc2hs
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc
@@ -8,32 +8,33 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Bind
-       (VkBindBufferMemoryDeviceGroupInfo(..),
-        VkBindBufferMemoryDeviceGroupInfoKHR, VkBindBufferMemoryInfo(..),
-        VkBindBufferMemoryInfoKHR, VkBindImageMemoryDeviceGroupInfo(..),
-        VkBindImageMemoryDeviceGroupInfoKHR, VkBindImageMemoryInfo(..),
-        VkBindImageMemoryInfoKHR, VkBindImageMemorySwapchainInfoKHR(..),
-        VkBindImagePlaneMemoryInfo(..), VkBindImagePlaneMemoryInfoKHR,
-        VkBindSparseInfo(..))
+       (VkBindBufferMemoryDeviceGroupInfo,
+        VkBindBufferMemoryDeviceGroupInfo', -- ' closing tick for hsc2hs
+        VkBindBufferMemoryDeviceGroupInfoKHR, VkBindBufferMemoryInfo,
+        VkBindBufferMemoryInfo', VkBindBufferMemoryInfoKHR, -- ' closing tick for hsc2hs
+        VkBindImageMemoryDeviceGroupInfo,
+        VkBindImageMemoryDeviceGroupInfo', -- ' closing tick for hsc2hs
+        VkBindImageMemoryDeviceGroupInfoKHR, VkBindImageMemoryInfo,
+        VkBindImageMemoryInfo', VkBindImageMemoryInfoKHR, -- ' closing tick for hsc2hs
+        VkBindImageMemorySwapchainInfoKHR,
+        VkBindImageMemorySwapchainInfoKHR', VkBindImagePlaneMemoryInfo, -- ' closing tick for hsc2hs
+        VkBindImagePlaneMemoryInfo', VkBindImagePlaneMemoryInfoKHR, -- ' closing tick for hsc2hs
+        VkBindSparseInfo, VkBindSparseInfo') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes          (VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.Image         (VkImageAspectFlagBits)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles            (VkBuffer,
-                                                           VkDeviceMemory,
-                                                           VkImage, VkSemaphore,
-                                                           VkSwapchainKHR)
-import           Graphics.Vulkan.Types.Struct.Rect        (VkRect2D)
-import           Graphics.Vulkan.Types.Struct.Sparse      (VkSparseBufferMemoryBindInfo,
-                                                           VkSparseImageMemoryBindInfo,
-                                                           VkSparseImageOpaqueMemoryBindInfo)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes          (VkDeviceSize)
+import Graphics.Vulkan.Types.Enum.Image         (VkImageAspectFlagBits)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Handles            (VkBuffer, VkDeviceMemory,
+                                                 VkImage, VkSemaphore,
+                                                 VkSwapchainKHR)
+import Graphics.Vulkan.Types.Struct.Rect        (VkRect2D)
+import Graphics.Vulkan.Types.Struct.Sparse      (VkSparseBufferMemoryBindInfo,
+                                                 VkSparseImageMemoryBindInfo,
+                                                 VkSparseImageOpaqueMemoryBindInfo)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkBindBufferMemoryDeviceGroupInfo {
 --   >     VkStructureType sType;
@@ -43,20 +44,18 @@
 --   > } VkBindBufferMemoryDeviceGroupInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfo registry at www.khronos.org>
-data VkBindBufferMemoryDeviceGroupInfo = VkBindBufferMemoryDeviceGroupInfo## Addr##
-                                                                            ByteArray##
+type VkBindBufferMemoryDeviceGroupInfo =
+     VulkanStruct VkBindBufferMemoryDeviceGroupInfo' -- ' closing tick for hsc2hs
 
+data VkBindBufferMemoryDeviceGroupInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkBindBufferMemoryDeviceGroupInfo where
-        (VkBindBufferMemoryDeviceGroupInfo## a _) ==
-          x@(VkBindBufferMemoryDeviceGroupInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkBindBufferMemoryDeviceGroupInfo where
-        (VkBindBufferMemoryDeviceGroupInfo## a _) `compare`
-          x@(VkBindBufferMemoryDeviceGroupInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -75,20 +74,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkBindBufferMemoryDeviceGroupInfo where
-        unsafeAddr (VkBindBufferMemoryDeviceGroupInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBindBufferMemoryDeviceGroupInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBindBufferMemoryDeviceGroupInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkBindBufferMemoryDeviceGroupInfo where
         type StructFields VkBindBufferMemoryDeviceGroupInfo =
              '["sType", "pNext", "deviceIndexCount", "pDeviceIndices"] -- ' closing tick for hsc2hs
@@ -275,18 +260,17 @@
 --   > } VkBindBufferMemoryInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBindBufferMemoryInfo VkBindBufferMemoryInfo registry at www.khronos.org>
-data VkBindBufferMemoryInfo = VkBindBufferMemoryInfo## Addr##
-                                                      ByteArray##
+type VkBindBufferMemoryInfo = VulkanStruct VkBindBufferMemoryInfo' -- ' closing tick for hsc2hs
 
+data VkBindBufferMemoryInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkBindBufferMemoryInfo where
-        (VkBindBufferMemoryInfo## a _) == x@(VkBindBufferMemoryInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkBindBufferMemoryInfo where
-        (VkBindBufferMemoryInfo## a _) `compare`
-          x@(VkBindBufferMemoryInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -304,18 +288,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkBindBufferMemoryInfo where
-        unsafeAddr (VkBindBufferMemoryInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBindBufferMemoryInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBindBufferMemoryInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkBindBufferMemoryInfo where
         type StructFields VkBindBufferMemoryInfo =
              '["sType", "pNext", "buffer", "memory", "memoryOffset"] -- ' closing tick for hsc2hs
@@ -510,20 +482,18 @@
 --   > } VkBindImageMemoryDeviceGroupInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfo registry at www.khronos.org>
-data VkBindImageMemoryDeviceGroupInfo = VkBindImageMemoryDeviceGroupInfo## Addr##
-                                                                          ByteArray##
+type VkBindImageMemoryDeviceGroupInfo =
+     VulkanStruct VkBindImageMemoryDeviceGroupInfo' -- ' closing tick for hsc2hs
 
+data VkBindImageMemoryDeviceGroupInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkBindImageMemoryDeviceGroupInfo where
-        (VkBindImageMemoryDeviceGroupInfo## a _) ==
-          x@(VkBindImageMemoryDeviceGroupInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkBindImageMemoryDeviceGroupInfo where
-        (VkBindImageMemoryDeviceGroupInfo## a _) `compare`
-          x@(VkBindImageMemoryDeviceGroupInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -542,20 +512,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkBindImageMemoryDeviceGroupInfo where
-        unsafeAddr (VkBindImageMemoryDeviceGroupInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBindImageMemoryDeviceGroupInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBindImageMemoryDeviceGroupInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkBindImageMemoryDeviceGroupInfo where
         type StructFields VkBindImageMemoryDeviceGroupInfo =
              '["sType", "pNext", "deviceIndexCount", "pDeviceIndices", -- ' closing tick for hsc2hs
@@ -839,18 +795,17 @@
 --   > } VkBindImageMemoryInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBindImageMemoryInfo VkBindImageMemoryInfo registry at www.khronos.org>
-data VkBindImageMemoryInfo = VkBindImageMemoryInfo## Addr##
-                                                    ByteArray##
+type VkBindImageMemoryInfo = VulkanStruct VkBindImageMemoryInfo' -- ' closing tick for hsc2hs
 
+data VkBindImageMemoryInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkBindImageMemoryInfo where
-        (VkBindImageMemoryInfo## a _) == x@(VkBindImageMemoryInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkBindImageMemoryInfo where
-        (VkBindImageMemoryInfo## a _) `compare`
-          x@(VkBindImageMemoryInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -868,18 +823,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkBindImageMemoryInfo where
-        unsafeAddr (VkBindImageMemoryInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBindImageMemoryInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBindImageMemoryInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkBindImageMemoryInfo where
         type StructFields VkBindImageMemoryInfo =
              '["sType", "pNext", "image", "memory", "memoryOffset"] -- ' closing tick for hsc2hs
@@ -1072,20 +1015,18 @@
 --   > } VkBindImageMemorySwapchainInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBindImageMemorySwapchainInfoKHR VkBindImageMemorySwapchainInfoKHR registry at www.khronos.org>
-data VkBindImageMemorySwapchainInfoKHR = VkBindImageMemorySwapchainInfoKHR## Addr##
-                                                                            ByteArray##
+type VkBindImageMemorySwapchainInfoKHR =
+     VulkanStruct VkBindImageMemorySwapchainInfoKHR' -- ' closing tick for hsc2hs
 
+data VkBindImageMemorySwapchainInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkBindImageMemorySwapchainInfoKHR where
-        (VkBindImageMemorySwapchainInfoKHR## a _) ==
-          x@(VkBindImageMemorySwapchainInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkBindImageMemorySwapchainInfoKHR where
-        (VkBindImageMemorySwapchainInfoKHR## a _) `compare`
-          x@(VkBindImageMemorySwapchainInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1104,20 +1045,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkBindImageMemorySwapchainInfoKHR where
-        unsafeAddr (VkBindImageMemorySwapchainInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBindImageMemorySwapchainInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBindImageMemorySwapchainInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkBindImageMemorySwapchainInfoKHR where
         type StructFields VkBindImageMemorySwapchainInfoKHR =
              '["sType", "pNext", "swapchain", "imageIndex"] -- ' closing tick for hsc2hs
@@ -1287,19 +1214,18 @@
 --   > } VkBindImagePlaneMemoryInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfo registry at www.khronos.org>
-data VkBindImagePlaneMemoryInfo = VkBindImagePlaneMemoryInfo## Addr##
-                                                              ByteArray##
+type VkBindImagePlaneMemoryInfo =
+     VulkanStruct VkBindImagePlaneMemoryInfo' -- ' closing tick for hsc2hs
 
+data VkBindImagePlaneMemoryInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkBindImagePlaneMemoryInfo where
-        (VkBindImagePlaneMemoryInfo## a _) ==
-          x@(VkBindImagePlaneMemoryInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkBindImagePlaneMemoryInfo where
-        (VkBindImagePlaneMemoryInfo## a _) `compare`
-          x@(VkBindImagePlaneMemoryInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1317,20 +1243,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkBindImagePlaneMemoryInfo where
-        unsafeAddr (VkBindImagePlaneMemoryInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBindImagePlaneMemoryInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBindImagePlaneMemoryInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkBindImagePlaneMemoryInfo where
         type StructFields VkBindImagePlaneMemoryInfo =
              '["sType", "pNext", "planeAspect"] -- ' closing tick for hsc2hs
@@ -1468,17 +1380,17 @@
 --   > } VkBindSparseInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBindSparseInfo VkBindSparseInfo registry at www.khronos.org>
-data VkBindSparseInfo = VkBindSparseInfo## Addr## ByteArray##
+type VkBindSparseInfo = VulkanStruct VkBindSparseInfo' -- ' closing tick for hsc2hs
 
+data VkBindSparseInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkBindSparseInfo where
-        (VkBindSparseInfo## a _) == x@(VkBindSparseInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkBindSparseInfo where
-        (VkBindSparseInfo## a _) `compare` x@(VkBindSparseInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1495,18 +1407,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkBindSparseInfo where
-        unsafeAddr (VkBindSparseInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBindSparseInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBindSparseInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkBindSparseInfo where
         type StructFields VkBindSparseInfo =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc
@@ -8,29 +8,29 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Buffer
-       (VkBufferCopy(..), VkBufferCreateInfo(..), VkBufferImageCopy(..),
-        VkBufferMemoryBarrier(..), VkBufferMemoryRequirementsInfo2(..),
-        VkBufferMemoryRequirementsInfo2KHR, VkBufferViewCreateInfo(..))
+       (VkBufferCopy, VkBufferCopy', VkBufferCreateInfo, -- ' closing tick for hsc2hs
+        VkBufferCreateInfo', VkBufferImageCopy, VkBufferImageCopy',
+        VkBufferMemoryBarrier, VkBufferMemoryBarrier', -- ' closing tick for hsc2hs
+        VkBufferMemoryRequirementsInfo2, VkBufferMemoryRequirementsInfo2', -- ' closing tick for hsc2hs
+        VkBufferMemoryRequirementsInfo2KHR, VkBufferViewCreateInfo,
+        VkBufferViewCreateInfo') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes          (VkDeviceSize)
-import           Graphics.Vulkan.Types.Bitmasks           (VkBufferViewCreateFlags)
-import           Graphics.Vulkan.Types.Enum.AccessFlags   (VkAccessFlags)
-import           Graphics.Vulkan.Types.Enum.Buffer        (VkBufferCreateFlags,
-                                                           VkBufferUsageFlags)
-import           Graphics.Vulkan.Types.Enum.Format        (VkFormat)
-import           Graphics.Vulkan.Types.Enum.SharingMode   (VkSharingMode)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles            (VkBuffer)
-import           Graphics.Vulkan.Types.Struct.Extent      (VkExtent3D)
-import           Graphics.Vulkan.Types.Struct.Image       (VkImageSubresourceLayers)
-import           Graphics.Vulkan.Types.Struct.Offset      (VkOffset3D)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes          (VkDeviceSize)
+import Graphics.Vulkan.Types.Bitmasks           (VkBufferViewCreateFlags)
+import Graphics.Vulkan.Types.Enum.AccessFlags   (VkAccessFlags)
+import Graphics.Vulkan.Types.Enum.Buffer        (VkBufferCreateFlags,
+                                                 VkBufferUsageFlags)
+import Graphics.Vulkan.Types.Enum.Format        (VkFormat)
+import Graphics.Vulkan.Types.Enum.SharingMode   (VkSharingMode)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Handles            (VkBuffer)
+import Graphics.Vulkan.Types.Struct.Extent      (VkExtent3D)
+import Graphics.Vulkan.Types.Struct.Image       (VkImageSubresourceLayers)
+import Graphics.Vulkan.Types.Struct.Offset      (VkOffset3D)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkBufferCopy {
 --   >     VkDeviceSize           srcOffset;
@@ -39,17 +39,17 @@
 --   > } VkBufferCopy;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBufferCopy VkBufferCopy registry at www.khronos.org>
-data VkBufferCopy = VkBufferCopy## Addr## ByteArray##
+type VkBufferCopy = VulkanStruct VkBufferCopy' -- ' closing tick for hsc2hs
 
+data VkBufferCopy' -- ' closing tick for hsc2hs
+
 instance Eq VkBufferCopy where
-        (VkBufferCopy## a _) == x@(VkBufferCopy## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkBufferCopy where
-        (VkBufferCopy## a _) `compare` x@(VkBufferCopy## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -67,18 +67,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkBufferCopy where
-        unsafeAddr (VkBufferCopy## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBufferCopy## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBufferCopy## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkBufferCopy where
         type StructFields VkBufferCopy =
              '["srcOffset", "dstOffset", "size"] -- ' closing tick for hsc2hs
@@ -201,17 +189,17 @@
 --   > } VkBufferCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBufferCreateInfo VkBufferCreateInfo registry at www.khronos.org>
-data VkBufferCreateInfo = VkBufferCreateInfo## Addr## ByteArray##
+type VkBufferCreateInfo = VulkanStruct VkBufferCreateInfo' -- ' closing tick for hsc2hs
 
+data VkBufferCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkBufferCreateInfo where
-        (VkBufferCreateInfo## a _) == x@(VkBufferCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkBufferCreateInfo where
-        (VkBufferCreateInfo## a _) `compare` x@(VkBufferCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -229,18 +217,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkBufferCreateInfo where
-        unsafeAddr (VkBufferCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBufferCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBufferCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkBufferCreateInfo where
         type StructFields VkBufferCreateInfo =
              '["sType", "pNext", "flags", "size", "usage", "sharingMode", -- ' closing tick for hsc2hs
@@ -544,17 +520,17 @@
 --   > } VkBufferImageCopy;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBufferImageCopy VkBufferImageCopy registry at www.khronos.org>
-data VkBufferImageCopy = VkBufferImageCopy## Addr## ByteArray##
+type VkBufferImageCopy = VulkanStruct VkBufferImageCopy' -- ' closing tick for hsc2hs
 
+data VkBufferImageCopy' -- ' closing tick for hsc2hs
+
 instance Eq VkBufferImageCopy where
-        (VkBufferImageCopy## a _) == x@(VkBufferImageCopy## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkBufferImageCopy where
-        (VkBufferImageCopy## a _) `compare` x@(VkBufferImageCopy## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -572,18 +548,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkBufferImageCopy where
-        unsafeAddr (VkBufferImageCopy## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBufferImageCopy## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBufferImageCopy## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkBufferImageCopy where
         type StructFields VkBufferImageCopy =
              '["bufferOffset", "bufferRowLength", "bufferImageHeight", -- ' closing tick for hsc2hs
@@ -816,18 +780,17 @@
 --   > } VkBufferMemoryBarrier;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBufferMemoryBarrier VkBufferMemoryBarrier registry at www.khronos.org>
-data VkBufferMemoryBarrier = VkBufferMemoryBarrier## Addr##
-                                                    ByteArray##
+type VkBufferMemoryBarrier = VulkanStruct VkBufferMemoryBarrier' -- ' closing tick for hsc2hs
 
+data VkBufferMemoryBarrier' -- ' closing tick for hsc2hs
+
 instance Eq VkBufferMemoryBarrier where
-        (VkBufferMemoryBarrier## a _) == x@(VkBufferMemoryBarrier## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkBufferMemoryBarrier where
-        (VkBufferMemoryBarrier## a _) `compare`
-          x@(VkBufferMemoryBarrier## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -845,18 +808,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkBufferMemoryBarrier where
-        unsafeAddr (VkBufferMemoryBarrier## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBufferMemoryBarrier## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBufferMemoryBarrier## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkBufferMemoryBarrier where
         type StructFields VkBufferMemoryBarrier =
              '["sType", "pNext", "srcAccessMask", "dstAccessMask", -- ' closing tick for hsc2hs
@@ -1193,19 +1144,18 @@
 --   > } VkBufferMemoryRequirementsInfo2;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2 registry at www.khronos.org>
-data VkBufferMemoryRequirementsInfo2 = VkBufferMemoryRequirementsInfo2## Addr##
-                                                                        ByteArray##
+type VkBufferMemoryRequirementsInfo2 =
+     VulkanStruct VkBufferMemoryRequirementsInfo2' -- ' closing tick for hsc2hs
 
+data VkBufferMemoryRequirementsInfo2' -- ' closing tick for hsc2hs
+
 instance Eq VkBufferMemoryRequirementsInfo2 where
-        (VkBufferMemoryRequirementsInfo2## a _) ==
-          x@(VkBufferMemoryRequirementsInfo2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkBufferMemoryRequirementsInfo2 where
-        (VkBufferMemoryRequirementsInfo2## a _) `compare`
-          x@(VkBufferMemoryRequirementsInfo2## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1224,20 +1174,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkBufferMemoryRequirementsInfo2 where
-        unsafeAddr (VkBufferMemoryRequirementsInfo2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBufferMemoryRequirementsInfo2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBufferMemoryRequirementsInfo2##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkBufferMemoryRequirementsInfo2 where
         type StructFields VkBufferMemoryRequirementsInfo2 =
              '["sType", "pNext", "buffer"] -- ' closing tick for hsc2hs
@@ -1370,18 +1306,17 @@
 --   > } VkBufferViewCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBufferViewCreateInfo VkBufferViewCreateInfo registry at www.khronos.org>
-data VkBufferViewCreateInfo = VkBufferViewCreateInfo## Addr##
-                                                      ByteArray##
+type VkBufferViewCreateInfo = VulkanStruct VkBufferViewCreateInfo' -- ' closing tick for hsc2hs
 
+data VkBufferViewCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkBufferViewCreateInfo where
-        (VkBufferViewCreateInfo## a _) == x@(VkBufferViewCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkBufferViewCreateInfo where
-        (VkBufferViewCreateInfo## a _) `compare`
-          x@(VkBufferViewCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1398,18 +1333,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkBufferViewCreateInfo where
-        unsafeAddr (VkBufferViewCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBufferViewCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBufferViewCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkBufferViewCreateInfo where
         type StructFields VkBufferViewCreateInfo =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Clear.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Clear.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Clear.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Clear.hsc
@@ -12,19 +12,17 @@
 {-# LANGUAGE TypeFamilies          #-}
 {-# LANGUAGE UndecidableInstances  #-}
 module Graphics.Vulkan.Types.Struct.Clear
-       (VkClearAttachment(..), VkClearColorValue(..),
-        VkClearDepthStencilValue(..), VkClearRect(..), VkClearValue(..))
+       (VkClearAttachment, VkClearAttachment', VkClearColorValue, -- ' closing tick for hsc2hs
+        VkClearColorValue', VkClearDepthStencilValue, -- ' closing tick for hsc2hs
+        VkClearDepthStencilValue', VkClearRect, VkClearRect', VkClearValue,
+        VkClearValue') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                  (Storable (..))
-import           GHC.Base                          (Addr##, ByteArray##, Proxy##,
-                                                    byteArrayContents##,
-                                                    plusAddr##, proxy##)
-import           GHC.TypeLits                      (KnownNat, natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.Image  (VkImageAspectFlags)
-import           Graphics.Vulkan.Types.Struct.Rect (VkRect2D)
-import           System.IO.Unsafe                  (unsafeDupablePerformIO)
+import Foreign.Storable                  (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.Image  (VkImageAspectFlags)
+import Graphics.Vulkan.Types.Struct.Rect (VkRect2D)
+import System.IO.Unsafe                  (unsafeDupablePerformIO)
 
 -- | > typedef struct VkClearAttachment {
 --   >     VkImageAspectFlags     aspectMask;
@@ -33,17 +31,17 @@
 --   > } VkClearAttachment;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkClearAttachment VkClearAttachment registry at www.khronos.org>
-data VkClearAttachment = VkClearAttachment## Addr## ByteArray##
+type VkClearAttachment = VulkanStruct VkClearAttachment' -- ' closing tick for hsc2hs
 
+data VkClearAttachment' -- ' closing tick for hsc2hs
+
 instance Eq VkClearAttachment where
-        (VkClearAttachment## a _) == x@(VkClearAttachment## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkClearAttachment where
-        (VkClearAttachment## a _) `compare` x@(VkClearAttachment## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -61,18 +59,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkClearAttachment where
-        unsafeAddr (VkClearAttachment## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkClearAttachment## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkClearAttachment## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkClearAttachment where
         type StructFields VkClearAttachment =
              '["aspectMask", "colorAttachment", "clearValue"] -- ' closing tick for hsc2hs
@@ -195,17 +181,17 @@
 --   > } VkClearColorValue;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkClearColorValue VkClearColorValue registry at www.khronos.org>
-data VkClearColorValue = VkClearColorValue## Addr## ByteArray##
+type VkClearColorValue = VulkanStruct VkClearColorValue' -- ' closing tick for hsc2hs
 
+data VkClearColorValue' -- ' closing tick for hsc2hs
+
 instance Eq VkClearColorValue where
-        (VkClearColorValue## a _) == x@(VkClearColorValue## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkClearColorValue where
-        (VkClearColorValue## a _) `compare` x@(VkClearColorValue## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -223,18 +209,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkClearColorValue where
-        unsafeAddr (VkClearColorValue## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkClearColorValue## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkClearColorValue## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkClearColorValue where
         type StructFields VkClearColorValue =
              '["float32", "int32", "uint32"] -- ' closing tick for hsc2hs
@@ -421,18 +395,18 @@
 --   > } VkClearDepthStencilValue;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkClearDepthStencilValue VkClearDepthStencilValue registry at www.khronos.org>
-data VkClearDepthStencilValue = VkClearDepthStencilValue## Addr##
-                                                          ByteArray##
+type VkClearDepthStencilValue =
+     VulkanStruct VkClearDepthStencilValue' -- ' closing tick for hsc2hs
 
+data VkClearDepthStencilValue' -- ' closing tick for hsc2hs
+
 instance Eq VkClearDepthStencilValue where
-        (VkClearDepthStencilValue## a _) ==
-          x@(VkClearDepthStencilValue## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkClearDepthStencilValue where
-        (VkClearDepthStencilValue## a _) `compare`
-          x@(VkClearDepthStencilValue## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -450,19 +424,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkClearDepthStencilValue where
-        unsafeAddr (VkClearDepthStencilValue## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkClearDepthStencilValue## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkClearDepthStencilValue## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkClearDepthStencilValue where
         type StructFields VkClearDepthStencilValue = '["depth", "stencil"] -- ' closing tick for hsc2hs
         type CUnionType VkClearDepthStencilValue = 'False -- ' closing tick for hsc2hs
@@ -549,17 +510,17 @@
 --   > } VkClearRect;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkClearRect VkClearRect registry at www.khronos.org>
-data VkClearRect = VkClearRect## Addr## ByteArray##
+type VkClearRect = VulkanStruct VkClearRect' -- ' closing tick for hsc2hs
 
+data VkClearRect' -- ' closing tick for hsc2hs
+
 instance Eq VkClearRect where
-        (VkClearRect## a _) == x@(VkClearRect## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkClearRect where
-        (VkClearRect## a _) `compare` x@(VkClearRect## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -577,18 +538,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkClearRect where
-        unsafeAddr (VkClearRect## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkClearRect## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkClearRect## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkClearRect where
         type StructFields VkClearRect =
              '["rect", "baseArrayLayer", "layerCount"] -- ' closing tick for hsc2hs
@@ -705,17 +654,17 @@
 --   > } VkClearValue;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkClearValue VkClearValue registry at www.khronos.org>
-data VkClearValue = VkClearValue## Addr## ByteArray##
+type VkClearValue = VulkanStruct VkClearValue' -- ' closing tick for hsc2hs
 
+data VkClearValue' -- ' closing tick for hsc2hs
+
 instance Eq VkClearValue where
-        (VkClearValue## a _) == x@(VkClearValue## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkClearValue where
-        (VkClearValue## a _) `compare` x@(VkClearValue## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -732,18 +681,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkClearValue where
-        unsafeAddr (VkClearValue## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkClearValue## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkClearValue## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkClearValue where
         type StructFields VkClearValue = '["color", "depthStencil"] -- ' closing tick for hsc2hs
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc
@@ -8,24 +8,19 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Cmd
-       (VkCmdProcessCommandsInfoNVX(..),
-        VkCmdReserveSpaceForCommandsInfoNVX(..))
+       (VkCmdProcessCommandsInfoNVX, VkCmdProcessCommandsInfoNVX', -- ' closing tick for hsc2hs
+        VkCmdReserveSpaceForCommandsInfoNVX,
+        VkCmdReserveSpaceForCommandsInfoNVX') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Base                                      (Addr##,
-                                                                ByteArray##,
-                                                                byteArrayContents##,
-                                                                plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes               (VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.StructureType      (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                 (VkBuffer,
-                                                                VkCommandBuffer,
-                                                                VkIndirectCommandsLayoutNVX,
-                                                                VkObjectTableNVX)
-import           Graphics.Vulkan.Types.Struct.IndirectCommands (VkIndirectCommandsTokenNVX)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
+import Foreign.Storable                              (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes               (VkDeviceSize)
+import Graphics.Vulkan.Types.Enum.StructureType      (VkStructureType)
+import Graphics.Vulkan.Types.Handles                 (VkBuffer, VkCommandBuffer, VkIndirectCommandsLayoutNVX,
+                                                      VkObjectTableNVX)
+import Graphics.Vulkan.Types.Struct.IndirectCommands (VkIndirectCommandsTokenNVX)
+import System.IO.Unsafe                              (unsafeDupablePerformIO)
 
 -- | > typedef struct VkCmdProcessCommandsInfoNVX {
 --   >     VkStructureType sType;
@@ -43,19 +38,18 @@
 --   > } VkCmdProcessCommandsInfoNVX;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkCmdProcessCommandsInfoNVX VkCmdProcessCommandsInfoNVX registry at www.khronos.org>
-data VkCmdProcessCommandsInfoNVX = VkCmdProcessCommandsInfoNVX## Addr##
-                                                                ByteArray##
+type VkCmdProcessCommandsInfoNVX =
+     VulkanStruct VkCmdProcessCommandsInfoNVX' -- ' closing tick for hsc2hs
 
+data VkCmdProcessCommandsInfoNVX' -- ' closing tick for hsc2hs
+
 instance Eq VkCmdProcessCommandsInfoNVX where
-        (VkCmdProcessCommandsInfoNVX## a _) ==
-          x@(VkCmdProcessCommandsInfoNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkCmdProcessCommandsInfoNVX where
-        (VkCmdProcessCommandsInfoNVX## a _) `compare`
-          x@(VkCmdProcessCommandsInfoNVX## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -73,20 +67,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkCmdProcessCommandsInfoNVX where
-        unsafeAddr (VkCmdProcessCommandsInfoNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkCmdProcessCommandsInfoNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkCmdProcessCommandsInfoNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkCmdProcessCommandsInfoNVX where
         type StructFields VkCmdProcessCommandsInfoNVX =
              '["sType", "pNext", "objectTable", "indirectCommandsLayout", -- ' closing tick for hsc2hs
@@ -632,20 +612,18 @@
 --   > } VkCmdReserveSpaceForCommandsInfoNVX;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkCmdReserveSpaceForCommandsInfoNVX VkCmdReserveSpaceForCommandsInfoNVX registry at www.khronos.org>
-data VkCmdReserveSpaceForCommandsInfoNVX = VkCmdReserveSpaceForCommandsInfoNVX## Addr##
-                                                                                ByteArray##
+type VkCmdReserveSpaceForCommandsInfoNVX =
+     VulkanStruct VkCmdReserveSpaceForCommandsInfoNVX' -- ' closing tick for hsc2hs
 
+data VkCmdReserveSpaceForCommandsInfoNVX' -- ' closing tick for hsc2hs
+
 instance Eq VkCmdReserveSpaceForCommandsInfoNVX where
-        (VkCmdReserveSpaceForCommandsInfoNVX## a _) ==
-          x@(VkCmdReserveSpaceForCommandsInfoNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkCmdReserveSpaceForCommandsInfoNVX where
-        (VkCmdReserveSpaceForCommandsInfoNVX## a _) `compare`
-          x@(VkCmdReserveSpaceForCommandsInfoNVX## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -663,21 +641,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkCmdReserveSpaceForCommandsInfoNVX
-         where
-        unsafeAddr (VkCmdReserveSpaceForCommandsInfoNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkCmdReserveSpaceForCommandsInfoNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkCmdReserveSpaceForCommandsInfoNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkCmdReserveSpaceForCommandsInfoNVX where
         type StructFields VkCmdReserveSpaceForCommandsInfoNVX =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Command.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Command.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Command.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Command.hsc
@@ -8,24 +8,24 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Command
-       (VkCommandBufferAllocateInfo(..), VkCommandBufferBeginInfo(..),
-        VkCommandBufferInheritanceInfo(..), VkCommandPoolCreateInfo(..))
+       (VkCommandBufferAllocateInfo, VkCommandBufferAllocateInfo', -- ' closing tick for hsc2hs
+        VkCommandBufferBeginInfo, VkCommandBufferBeginInfo', -- ' closing tick for hsc2hs
+        VkCommandBufferInheritanceInfo, VkCommandBufferInheritanceInfo', -- ' closing tick for hsc2hs
+        VkCommandPoolCreateInfo, VkCommandPoolCreateInfo') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes          (VkBool32)
-import           Graphics.Vulkan.Types.Enum.Command       (VkCommandBufferLevel, VkCommandBufferUsageFlags,
-                                                           VkCommandPoolCreateFlags)
-import           Graphics.Vulkan.Types.Enum.Query         (VkQueryControlFlags, VkQueryPipelineStatisticFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles            (VkCommandPool,
-                                                           VkFramebuffer,
-                                                           VkRenderPass)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes          (VkBool32)
+import Graphics.Vulkan.Types.Enum.Command       (VkCommandBufferLevel,
+                                                 VkCommandBufferUsageFlags,
+                                                 VkCommandPoolCreateFlags)
+import Graphics.Vulkan.Types.Enum.Query         (VkQueryControlFlags,
+                                                 VkQueryPipelineStatisticFlags)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Handles            (VkCommandPool, VkFramebuffer,
+                                                 VkRenderPass)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkCommandBufferAllocateInfo {
 --   >     VkStructureType sType;
@@ -36,19 +36,18 @@
 --   > } VkCommandBufferAllocateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkCommandBufferAllocateInfo VkCommandBufferAllocateInfo registry at www.khronos.org>
-data VkCommandBufferAllocateInfo = VkCommandBufferAllocateInfo## Addr##
-                                                                ByteArray##
+type VkCommandBufferAllocateInfo =
+     VulkanStruct VkCommandBufferAllocateInfo' -- ' closing tick for hsc2hs
 
+data VkCommandBufferAllocateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkCommandBufferAllocateInfo where
-        (VkCommandBufferAllocateInfo## a _) ==
-          x@(VkCommandBufferAllocateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkCommandBufferAllocateInfo where
-        (VkCommandBufferAllocateInfo## a _) `compare`
-          x@(VkCommandBufferAllocateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -66,20 +65,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkCommandBufferAllocateInfo where
-        unsafeAddr (VkCommandBufferAllocateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkCommandBufferAllocateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkCommandBufferAllocateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkCommandBufferAllocateInfo where
         type StructFields VkCommandBufferAllocateInfo =
              '["sType", "pNext", "commandPool", "level", "commandBufferCount"] -- ' closing tick for hsc2hs
@@ -283,18 +268,18 @@
 --   > } VkCommandBufferBeginInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkCommandBufferBeginInfo VkCommandBufferBeginInfo registry at www.khronos.org>
-data VkCommandBufferBeginInfo = VkCommandBufferBeginInfo## Addr##
-                                                          ByteArray##
+type VkCommandBufferBeginInfo =
+     VulkanStruct VkCommandBufferBeginInfo' -- ' closing tick for hsc2hs
 
+data VkCommandBufferBeginInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkCommandBufferBeginInfo where
-        (VkCommandBufferBeginInfo## a _) ==
-          x@(VkCommandBufferBeginInfo## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkCommandBufferBeginInfo where
-        (VkCommandBufferBeginInfo## a _) `compare`
-          x@(VkCommandBufferBeginInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -312,19 +297,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkCommandBufferBeginInfo where
-        unsafeAddr (VkCommandBufferBeginInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkCommandBufferBeginInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkCommandBufferBeginInfo## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkCommandBufferBeginInfo where
         type StructFields VkCommandBufferBeginInfo =
              '["sType", "pNext", "flags", "pInheritanceInfo"] -- ' closing tick for hsc2hs
@@ -488,19 +460,18 @@
 --   > } VkCommandBufferInheritanceInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkCommandBufferInheritanceInfo VkCommandBufferInheritanceInfo registry at www.khronos.org>
-data VkCommandBufferInheritanceInfo = VkCommandBufferInheritanceInfo## Addr##
-                                                                      ByteArray##
+type VkCommandBufferInheritanceInfo =
+     VulkanStruct VkCommandBufferInheritanceInfo' -- ' closing tick for hsc2hs
 
+data VkCommandBufferInheritanceInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkCommandBufferInheritanceInfo where
-        (VkCommandBufferInheritanceInfo## a _) ==
-          x@(VkCommandBufferInheritanceInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkCommandBufferInheritanceInfo where
-        (VkCommandBufferInheritanceInfo## a _) `compare`
-          x@(VkCommandBufferInheritanceInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -519,20 +490,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkCommandBufferInheritanceInfo where
-        unsafeAddr (VkCommandBufferInheritanceInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkCommandBufferInheritanceInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkCommandBufferInheritanceInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkCommandBufferInheritanceInfo where
         type StructFields VkCommandBufferInheritanceInfo =
              '["sType", "pNext", "renderPass", "subpass", "framebuffer", -- ' closing tick for hsc2hs
@@ -865,18 +822,18 @@
 --   > } VkCommandPoolCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkCommandPoolCreateInfo VkCommandPoolCreateInfo registry at www.khronos.org>
-data VkCommandPoolCreateInfo = VkCommandPoolCreateInfo## Addr##
-                                                        ByteArray##
+type VkCommandPoolCreateInfo =
+     VulkanStruct VkCommandPoolCreateInfo' -- ' closing tick for hsc2hs
 
+data VkCommandPoolCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkCommandPoolCreateInfo where
-        (VkCommandPoolCreateInfo## a _) == x@(VkCommandPoolCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkCommandPoolCreateInfo where
-        (VkCommandPoolCreateInfo## a _) `compare`
-          x@(VkCommandPoolCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -893,18 +850,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkCommandPoolCreateInfo where
-        unsafeAddr (VkCommandPoolCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkCommandPoolCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkCommandPoolCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkCommandPoolCreateInfo where
         type StructFields VkCommandPoolCreateInfo =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/ComponentMapping.hsc b/src-gen/Graphics/Vulkan/Types/Struct/ComponentMapping.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/ComponentMapping.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/ComponentMapping.hsc
@@ -8,15 +8,12 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.ComponentMapping
-       (VkComponentMapping(..)) where
-import           Foreign.Storable                            (Storable (..))
-import           GHC.Base                                    (Addr##, ByteArray##,
-                                                              byteArrayContents##,
-                                                              plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.ComponentSwizzle (VkComponentSwizzle)
-import           System.IO.Unsafe                            (unsafeDupablePerformIO)
+       (VkComponentMapping, VkComponentMapping') where -- ' closing tick for hsc2hs
+import Foreign.Storable                            (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.ComponentSwizzle (VkComponentSwizzle)
+import System.IO.Unsafe                            (unsafeDupablePerformIO)
 
 -- | > typedef struct VkComponentMapping {
 --   >     VkComponentSwizzle r;
@@ -26,17 +23,17 @@
 --   > } VkComponentMapping;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkComponentMapping VkComponentMapping registry at www.khronos.org>
-data VkComponentMapping = VkComponentMapping## Addr## ByteArray##
+type VkComponentMapping = VulkanStruct VkComponentMapping' -- ' closing tick for hsc2hs
 
+data VkComponentMapping' -- ' closing tick for hsc2hs
+
 instance Eq VkComponentMapping where
-        (VkComponentMapping## a _) == x@(VkComponentMapping## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkComponentMapping where
-        (VkComponentMapping## a _) `compare` x@(VkComponentMapping## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -53,18 +50,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkComponentMapping where
-        unsafeAddr (VkComponentMapping## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkComponentMapping## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkComponentMapping## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkComponentMapping where
         type StructFields VkComponentMapping = '["r", "g", "b", "a"] -- ' closing tick for hsc2hs
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/ComputePipelineCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/ComputePipelineCreateInfo.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/ComputePipelineCreateInfo.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/ComputePipelineCreateInfo.hsc
@@ -8,19 +8,15 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.ComputePipelineCreateInfo
-       (VkComputePipelineCreateInfo(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.Pipeline      (VkPipelineCreateFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles            (VkPipeline,
-                                                           VkPipelineLayout)
-import           Graphics.Vulkan.Types.Struct.Pipeline    (VkPipelineShaderStageCreateInfo)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkComputePipelineCreateInfo, VkComputePipelineCreateInfo') where -- ' closing tick for hsc2hs
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.Pipeline      (VkPipelineCreateFlags)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Handles            (VkPipeline, VkPipelineLayout)
+import Graphics.Vulkan.Types.Struct.Pipeline    (VkPipelineShaderStageCreateInfo)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkComputePipelineCreateInfo {
 --   >     VkStructureType sType;
@@ -33,19 +29,18 @@
 --   > } VkComputePipelineCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkComputePipelineCreateInfo VkComputePipelineCreateInfo registry at www.khronos.org>
-data VkComputePipelineCreateInfo = VkComputePipelineCreateInfo## Addr##
-                                                                ByteArray##
+type VkComputePipelineCreateInfo =
+     VulkanStruct VkComputePipelineCreateInfo' -- ' closing tick for hsc2hs
 
+data VkComputePipelineCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkComputePipelineCreateInfo where
-        (VkComputePipelineCreateInfo## a _) ==
-          x@(VkComputePipelineCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkComputePipelineCreateInfo where
-        (VkComputePipelineCreateInfo## a _) `compare`
-          x@(VkComputePipelineCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -62,20 +57,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkComputePipelineCreateInfo where
-        unsafeAddr (VkComputePipelineCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkComputePipelineCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkComputePipelineCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkComputePipelineCreateInfo where
         type StructFields VkComputePipelineCreateInfo =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/CopyDescriptorSet.hsc b/src-gen/Graphics/Vulkan/Types/Struct/CopyDescriptorSet.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/CopyDescriptorSet.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/CopyDescriptorSet.hsc
@@ -8,16 +8,13 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.CopyDescriptorSet
-       (VkCopyDescriptorSet(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles            (VkDescriptorSet)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkCopyDescriptorSet, VkCopyDescriptorSet') where -- ' closing tick for hsc2hs
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Handles            (VkDescriptorSet)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkCopyDescriptorSet {
 --   >     VkStructureType sType;
@@ -32,17 +29,17 @@
 --   > } VkCopyDescriptorSet;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkCopyDescriptorSet VkCopyDescriptorSet registry at www.khronos.org>
-data VkCopyDescriptorSet = VkCopyDescriptorSet## Addr## ByteArray##
+type VkCopyDescriptorSet = VulkanStruct VkCopyDescriptorSet' -- ' closing tick for hsc2hs
 
+data VkCopyDescriptorSet' -- ' closing tick for hsc2hs
+
 instance Eq VkCopyDescriptorSet where
-        (VkCopyDescriptorSet## a _) == x@(VkCopyDescriptorSet## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkCopyDescriptorSet where
-        (VkCopyDescriptorSet## a _) `compare` x@(VkCopyDescriptorSet## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -59,18 +56,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkCopyDescriptorSet where
-        unsafeAddr (VkCopyDescriptorSet## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkCopyDescriptorSet## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkCopyDescriptorSet## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkCopyDescriptorSet where
         type StructFields VkCopyDescriptorSet =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc
@@ -12,30 +12,22 @@
 {-# LANGUAGE TypeFamilies          #-}
 {-# LANGUAGE UndecidableInstances  #-}
 module Graphics.Vulkan.Types.Struct.Debug
-       (VkDebugMarkerMarkerInfoEXT(..),
-        VkDebugMarkerObjectNameInfoEXT(..),
-        VkDebugMarkerObjectTagInfoEXT(..),
-        VkDebugReportCallbackCreateInfoEXT(..),
-        VkDebugUtilsObjectTagInfoEXT(..))
+       (VkDebugMarkerMarkerInfoEXT, VkDebugMarkerMarkerInfoEXT', -- ' closing tick for hsc2hs
+        VkDebugMarkerObjectNameInfoEXT, VkDebugMarkerObjectNameInfoEXT', -- ' closing tick for hsc2hs
+        VkDebugMarkerObjectTagInfoEXT, VkDebugMarkerObjectTagInfoEXT', -- ' closing tick for hsc2hs
+        VkDebugReportCallbackCreateInfoEXT,
+        VkDebugReportCallbackCreateInfoEXT', VkDebugUtilsObjectTagInfoEXT, -- ' closing tick for hsc2hs
+        VkDebugUtilsObjectTagInfoEXT') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                                (Storable (..))
-import           GHC.Base                                        (Addr##,
-                                                                  ByteArray##,
-                                                                  Proxy##,
-                                                                  byteArrayContents##,
-                                                                  plusAddr##,
-                                                                  proxy##)
-import           GHC.TypeLits                                    (KnownNat,
-                                                                  natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.Debug                (VkDebugReportFlagsEXT,
-                                                                  VkDebugReportObjectTypeEXT)
-import           Graphics.Vulkan.Types.Enum.Object               (VkObjectType)
-import           Graphics.Vulkan.Types.Enum.StructureType        (VkStructureType)
-import           Graphics.Vulkan.Types.Funcpointers              (PFN_vkDebugReportCallbackEXT)
-import           Graphics.Vulkan.Types.Struct.InstanceCreateInfo (VkInstanceCreateInfo)
-import           System.IO.Unsafe                                (unsafeDupablePerformIO)
+import Foreign.Storable                                (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.Debug                (VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT)
+import Graphics.Vulkan.Types.Enum.Object               (VkObjectType)
+import Graphics.Vulkan.Types.Enum.StructureType        (VkStructureType)
+import Graphics.Vulkan.Types.Funcpointers              (PFN_vkDebugReportCallbackEXT)
+import Graphics.Vulkan.Types.Struct.InstanceCreateInfo (VkInstanceCreateInfo)
+import System.IO.Unsafe                                (unsafeDupablePerformIO)
 
 -- | > typedef struct VkDebugMarkerMarkerInfoEXT {
 --   >     VkStructureType sType;
@@ -45,19 +37,18 @@
 --   > } VkDebugMarkerMarkerInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugMarkerMarkerInfoEXT VkDebugMarkerMarkerInfoEXT registry at www.khronos.org>
-data VkDebugMarkerMarkerInfoEXT = VkDebugMarkerMarkerInfoEXT## Addr##
-                                                              ByteArray##
+type VkDebugMarkerMarkerInfoEXT =
+     VulkanStruct VkDebugMarkerMarkerInfoEXT' -- ' closing tick for hsc2hs
 
+data VkDebugMarkerMarkerInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkDebugMarkerMarkerInfoEXT where
-        (VkDebugMarkerMarkerInfoEXT## a _) ==
-          x@(VkDebugMarkerMarkerInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDebugMarkerMarkerInfoEXT where
-        (VkDebugMarkerMarkerInfoEXT## a _) `compare`
-          x@(VkDebugMarkerMarkerInfoEXT## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -75,20 +66,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDebugMarkerMarkerInfoEXT where
-        unsafeAddr (VkDebugMarkerMarkerInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDebugMarkerMarkerInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDebugMarkerMarkerInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDebugMarkerMarkerInfoEXT where
         type StructFields VkDebugMarkerMarkerInfoEXT =
              '["sType", "pNext", "pMarkerName", "color"] -- ' closing tick for hsc2hs
@@ -274,19 +251,18 @@
 --   > } VkDebugMarkerObjectNameInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugMarkerObjectNameInfoEXT VkDebugMarkerObjectNameInfoEXT registry at www.khronos.org>
-data VkDebugMarkerObjectNameInfoEXT = VkDebugMarkerObjectNameInfoEXT## Addr##
-                                                                      ByteArray##
+type VkDebugMarkerObjectNameInfoEXT =
+     VulkanStruct VkDebugMarkerObjectNameInfoEXT' -- ' closing tick for hsc2hs
 
+data VkDebugMarkerObjectNameInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkDebugMarkerObjectNameInfoEXT where
-        (VkDebugMarkerObjectNameInfoEXT## a _) ==
-          x@(VkDebugMarkerObjectNameInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDebugMarkerObjectNameInfoEXT where
-        (VkDebugMarkerObjectNameInfoEXT## a _) `compare`
-          x@(VkDebugMarkerObjectNameInfoEXT## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -305,20 +281,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDebugMarkerObjectNameInfoEXT where
-        unsafeAddr (VkDebugMarkerObjectNameInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDebugMarkerObjectNameInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDebugMarkerObjectNameInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDebugMarkerObjectNameInfoEXT where
         type StructFields VkDebugMarkerObjectNameInfoEXT =
              '["sType", "pNext", "objectType", "object", "pObjectName"] -- ' closing tick for hsc2hs
@@ -522,19 +484,18 @@
 --   > } VkDebugMarkerObjectTagInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugMarkerObjectTagInfoEXT VkDebugMarkerObjectTagInfoEXT registry at www.khronos.org>
-data VkDebugMarkerObjectTagInfoEXT = VkDebugMarkerObjectTagInfoEXT## Addr##
-                                                                    ByteArray##
+type VkDebugMarkerObjectTagInfoEXT =
+     VulkanStruct VkDebugMarkerObjectTagInfoEXT' -- ' closing tick for hsc2hs
 
+data VkDebugMarkerObjectTagInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkDebugMarkerObjectTagInfoEXT where
-        (VkDebugMarkerObjectTagInfoEXT## a _) ==
-          x@(VkDebugMarkerObjectTagInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDebugMarkerObjectTagInfoEXT where
-        (VkDebugMarkerObjectTagInfoEXT## a _) `compare`
-          x@(VkDebugMarkerObjectTagInfoEXT## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -553,20 +514,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDebugMarkerObjectTagInfoEXT where
-        unsafeAddr (VkDebugMarkerObjectTagInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDebugMarkerObjectTagInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDebugMarkerObjectTagInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDebugMarkerObjectTagInfoEXT where
         type StructFields VkDebugMarkerObjectTagInfoEXT =
              '["sType", "pNext", "objectType", "object", "tagName", "tagSize", -- ' closing tick for hsc2hs
@@ -836,20 +783,18 @@
 --   > } VkDebugReportCallbackCreateInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugReportCallbackCreateInfoEXT VkDebugReportCallbackCreateInfoEXT registry at www.khronos.org>
-data VkDebugReportCallbackCreateInfoEXT = VkDebugReportCallbackCreateInfoEXT## Addr##
-                                                                              ByteArray##
+type VkDebugReportCallbackCreateInfoEXT =
+     VulkanStruct VkDebugReportCallbackCreateInfoEXT' -- ' closing tick for hsc2hs
 
+data VkDebugReportCallbackCreateInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkDebugReportCallbackCreateInfoEXT where
-        (VkDebugReportCallbackCreateInfoEXT## a _) ==
-          x@(VkDebugReportCallbackCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDebugReportCallbackCreateInfoEXT where
-        (VkDebugReportCallbackCreateInfoEXT## a _) `compare`
-          x@(VkDebugReportCallbackCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -868,20 +813,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDebugReportCallbackCreateInfoEXT where
-        unsafeAddr (VkDebugReportCallbackCreateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDebugReportCallbackCreateInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDebugReportCallbackCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDebugReportCallbackCreateInfoEXT where
         type StructFields VkDebugReportCallbackCreateInfoEXT =
              '["sType", "pNext", "flags", "pfnCallback", "pUserData"] -- ' closing tick for hsc2hs
@@ -1095,19 +1026,18 @@
 --   > } VkDebugUtilsObjectTagInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugUtilsObjectTagInfoEXT VkDebugUtilsObjectTagInfoEXT registry at www.khronos.org>
-data VkDebugUtilsObjectTagInfoEXT = VkDebugUtilsObjectTagInfoEXT## Addr##
-                                                                  ByteArray##
+type VkDebugUtilsObjectTagInfoEXT =
+     VulkanStruct VkDebugUtilsObjectTagInfoEXT' -- ' closing tick for hsc2hs
 
+data VkDebugUtilsObjectTagInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkDebugUtilsObjectTagInfoEXT where
-        (VkDebugUtilsObjectTagInfoEXT## a _) ==
-          x@(VkDebugUtilsObjectTagInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDebugUtilsObjectTagInfoEXT where
-        (VkDebugUtilsObjectTagInfoEXT## a _) `compare`
-          x@(VkDebugUtilsObjectTagInfoEXT## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1125,20 +1055,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDebugUtilsObjectTagInfoEXT where
-        unsafeAddr (VkDebugUtilsObjectTagInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDebugUtilsObjectTagInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDebugUtilsObjectTagInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkDebugUtilsObjectTagInfoEXT where
         type StructFields VkDebugUtilsObjectTagInfoEXT =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsLabelEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsLabelEXT.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsLabelEXT.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsLabelEXT.hsc
@@ -12,17 +12,12 @@
 {-# LANGUAGE TypeFamilies          #-}
 {-# LANGUAGE UndecidableInstances  #-}
 module Graphics.Vulkan.Types.Struct.DebugUtilsLabelEXT
-       (VkDebugUtilsLabelEXT(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           Proxy##,
-                                                           byteArrayContents##,
-                                                           plusAddr##, proxy##)
-import           GHC.TypeLits                             (KnownNat, natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkDebugUtilsLabelEXT, VkDebugUtilsLabelEXT') where -- ' closing tick for hsc2hs
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkDebugUtilsLabelEXT {
 --   >     VkStructureType sType;
@@ -32,17 +27,17 @@
 --   > } VkDebugUtilsLabelEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugUtilsLabelEXT VkDebugUtilsLabelEXT registry at www.khronos.org>
-data VkDebugUtilsLabelEXT = VkDebugUtilsLabelEXT## Addr## ByteArray##
+type VkDebugUtilsLabelEXT = VulkanStruct VkDebugUtilsLabelEXT' -- ' closing tick for hsc2hs
 
+data VkDebugUtilsLabelEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkDebugUtilsLabelEXT where
-        (VkDebugUtilsLabelEXT## a _) == x@(VkDebugUtilsLabelEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDebugUtilsLabelEXT where
-        (VkDebugUtilsLabelEXT## a _) `compare` x@(VkDebugUtilsLabelEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -59,18 +54,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDebugUtilsLabelEXT where
-        unsafeAddr (VkDebugUtilsLabelEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDebugUtilsLabelEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDebugUtilsLabelEXT## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkDebugUtilsLabelEXT where
         type StructFields VkDebugUtilsLabelEXT =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc
@@ -8,19 +8,17 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCallbackDataEXT
-       (VkDebugUtilsMessengerCallbackDataEXT(..)) where
-import           Foreign.Storable                                         (Storable (..))
-import           GHC.Base                                                 (Addr##,
-                                                                           ByteArray##,
-                                                                           byteArrayContents##,
-                                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks                           (VkDebugUtilsMessengerCallbackDataFlagsEXT)
-import           Graphics.Vulkan.Types.Enum.StructureType                 (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.DebugUtilsLabelEXT          (VkDebugUtilsLabelEXT)
-import           Graphics.Vulkan.Types.Struct.DebugUtilsObjectNameInfoEXT (VkDebugUtilsObjectNameInfoEXT)
-import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
+       (VkDebugUtilsMessengerCallbackDataEXT,
+        VkDebugUtilsMessengerCallbackDataEXT') -- ' closing tick for hsc2hs
+       where
+import Foreign.Storable                                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Bitmasks                           (VkDebugUtilsMessengerCallbackDataFlagsEXT)
+import Graphics.Vulkan.Types.Enum.StructureType                 (VkStructureType)
+import Graphics.Vulkan.Types.Struct.DebugUtilsLabelEXT          (VkDebugUtilsLabelEXT)
+import Graphics.Vulkan.Types.Struct.DebugUtilsObjectNameInfoEXT (VkDebugUtilsObjectNameInfoEXT)
+import System.IO.Unsafe                                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkDebugUtilsMessengerCallbackDataEXT {
 --   >     VkStructureType sType;
@@ -38,20 +36,18 @@
 --   > } VkDebugUtilsMessengerCallbackDataEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugUtilsMessengerCallbackDataEXT VkDebugUtilsMessengerCallbackDataEXT registry at www.khronos.org>
-data VkDebugUtilsMessengerCallbackDataEXT = VkDebugUtilsMessengerCallbackDataEXT## Addr##
-                                                                                  ByteArray##
+type VkDebugUtilsMessengerCallbackDataEXT =
+     VulkanStruct VkDebugUtilsMessengerCallbackDataEXT' -- ' closing tick for hsc2hs
 
+data VkDebugUtilsMessengerCallbackDataEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkDebugUtilsMessengerCallbackDataEXT where
-        (VkDebugUtilsMessengerCallbackDataEXT## a _) ==
-          x@(VkDebugUtilsMessengerCallbackDataEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDebugUtilsMessengerCallbackDataEXT where
-        (VkDebugUtilsMessengerCallbackDataEXT## a _) `compare`
-          x@(VkDebugUtilsMessengerCallbackDataEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -70,21 +66,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDebugUtilsMessengerCallbackDataEXT
-         where
-        unsafeAddr (VkDebugUtilsMessengerCallbackDataEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDebugUtilsMessengerCallbackDataEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDebugUtilsMessengerCallbackDataEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkDebugUtilsMessengerCallbackDataEXT where
         type StructFields VkDebugUtilsMessengerCallbackDataEXT =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCreateInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCreateInfoEXT.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCreateInfoEXT.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCreateInfoEXT.hsc
@@ -8,21 +8,19 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCreateInfoEXT
-       (VkDebugUtilsMessengerCreateInfoEXT(..)) where
-import           Foreign.Storable                                (Storable (..))
-import           GHC.Base                                        (Addr##,
-                                                                  ByteArray##,
-                                                                  byteArrayContents##,
-                                                                  plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks                  (VkDebugUtilsMessengerCreateFlagsEXT)
-import           Graphics.Vulkan.Types.Enum.Debug                (VkDebugUtilsMessageSeverityFlagsEXT,
-                                                                  VkDebugUtilsMessageTypeFlagsEXT)
-import           Graphics.Vulkan.Types.Enum.StructureType        (VkStructureType)
-import           Graphics.Vulkan.Types.Funcpointers              (PFN_vkDebugUtilsMessengerCallbackEXT)
-import           Graphics.Vulkan.Types.Struct.InstanceCreateInfo (VkInstanceCreateInfo)
-import           System.IO.Unsafe                                (unsafeDupablePerformIO)
+       (VkDebugUtilsMessengerCreateInfoEXT,
+        VkDebugUtilsMessengerCreateInfoEXT') -- ' closing tick for hsc2hs
+       where
+import Foreign.Storable                                (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Bitmasks                  (VkDebugUtilsMessengerCreateFlagsEXT)
+import Graphics.Vulkan.Types.Enum.Debug                (VkDebugUtilsMessageSeverityFlagsEXT,
+                                                        VkDebugUtilsMessageTypeFlagsEXT)
+import Graphics.Vulkan.Types.Enum.StructureType        (VkStructureType)
+import Graphics.Vulkan.Types.Funcpointers              (PFN_vkDebugUtilsMessengerCallbackEXT)
+import Graphics.Vulkan.Types.Struct.InstanceCreateInfo (VkInstanceCreateInfo)
+import System.IO.Unsafe                                (unsafeDupablePerformIO)
 
 -- | > typedef struct VkDebugUtilsMessengerCreateInfoEXT {
 --   >     VkStructureType sType;
@@ -35,20 +33,18 @@
 --   > } VkDebugUtilsMessengerCreateInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugUtilsMessengerCreateInfoEXT VkDebugUtilsMessengerCreateInfoEXT registry at www.khronos.org>
-data VkDebugUtilsMessengerCreateInfoEXT = VkDebugUtilsMessengerCreateInfoEXT## Addr##
-                                                                              ByteArray##
+type VkDebugUtilsMessengerCreateInfoEXT =
+     VulkanStruct VkDebugUtilsMessengerCreateInfoEXT' -- ' closing tick for hsc2hs
 
+data VkDebugUtilsMessengerCreateInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkDebugUtilsMessengerCreateInfoEXT where
-        (VkDebugUtilsMessengerCreateInfoEXT## a _) ==
-          x@(VkDebugUtilsMessengerCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDebugUtilsMessengerCreateInfoEXT where
-        (VkDebugUtilsMessengerCreateInfoEXT## a _) `compare`
-          x@(VkDebugUtilsMessengerCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -66,20 +62,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDebugUtilsMessengerCreateInfoEXT where
-        unsafeAddr (VkDebugUtilsMessengerCreateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDebugUtilsMessengerCreateInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDebugUtilsMessengerCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkDebugUtilsMessengerCreateInfoEXT where
         type StructFields VkDebugUtilsMessengerCreateInfoEXT =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsObjectNameInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsObjectNameInfoEXT.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsObjectNameInfoEXT.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsObjectNameInfoEXT.hsc
@@ -8,16 +8,14 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.DebugUtilsObjectNameInfoEXT
-       (VkDebugUtilsObjectNameInfoEXT(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.Object        (VkObjectType)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkDebugUtilsObjectNameInfoEXT, VkDebugUtilsObjectNameInfoEXT') -- ' closing tick for hsc2hs
+       where
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.Object        (VkObjectType)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkDebugUtilsObjectNameInfoEXT {
 --   >     VkStructureType sType;
@@ -28,19 +26,18 @@
 --   > } VkDebugUtilsObjectNameInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugUtilsObjectNameInfoEXT VkDebugUtilsObjectNameInfoEXT registry at www.khronos.org>
-data VkDebugUtilsObjectNameInfoEXT = VkDebugUtilsObjectNameInfoEXT## Addr##
-                                                                    ByteArray##
+type VkDebugUtilsObjectNameInfoEXT =
+     VulkanStruct VkDebugUtilsObjectNameInfoEXT' -- ' closing tick for hsc2hs
 
+data VkDebugUtilsObjectNameInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkDebugUtilsObjectNameInfoEXT where
-        (VkDebugUtilsObjectNameInfoEXT## a _) ==
-          x@(VkDebugUtilsObjectNameInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDebugUtilsObjectNameInfoEXT where
-        (VkDebugUtilsObjectNameInfoEXT## a _) `compare`
-          x@(VkDebugUtilsObjectNameInfoEXT## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -58,20 +55,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDebugUtilsObjectNameInfoEXT where
-        unsafeAddr (VkDebugUtilsObjectNameInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDebugUtilsObjectNameInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDebugUtilsObjectNameInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkDebugUtilsObjectNameInfoEXT where
         type StructFields VkDebugUtilsObjectNameInfoEXT =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/DedicatedAllocation.hsc b/src-gen/Graphics/Vulkan/Types/Struct/DedicatedAllocation.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/DedicatedAllocation.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/DedicatedAllocation.hsc
@@ -8,23 +8,23 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.DedicatedAllocation
-       (VkDedicatedAllocationBufferCreateInfoNV(..),
-        VkDedicatedAllocationImageCreateInfoNV(..),
-        VkDedicatedAllocationMemoryAllocateInfoNV(..))
+       (VkDedicatedAllocationBufferCreateInfoNV,
+        VkDedicatedAllocationBufferCreateInfoNV', -- ' closing tick for hsc2hs
+        VkDedicatedAllocationImageCreateInfoNV,
+        VkDedicatedAllocationImageCreateInfoNV', -- ' closing tick for hsc2hs
+        VkDedicatedAllocationMemoryAllocateInfoNV,
+        VkDedicatedAllocationMemoryAllocateInfoNV') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes          (VkBool32)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles            (VkBuffer, VkImage)
-import           Graphics.Vulkan.Types.Struct.Buffer      (VkBufferCreateInfo)
-import           Graphics.Vulkan.Types.Struct.Image       (VkImageCreateInfo)
-import           Graphics.Vulkan.Types.Struct.Memory      (VkMemoryAllocateInfo)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes          (VkBool32)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Handles            (VkBuffer, VkImage)
+import Graphics.Vulkan.Types.Struct.Buffer      (VkBufferCreateInfo)
+import Graphics.Vulkan.Types.Struct.Image       (VkImageCreateInfo)
+import Graphics.Vulkan.Types.Struct.Memory      (VkMemoryAllocateInfo)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkDedicatedAllocationBufferCreateInfoNV {
 --   >     VkStructureType sType;
@@ -33,20 +33,18 @@
 --   > } VkDedicatedAllocationBufferCreateInfoNV;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDedicatedAllocationBufferCreateInfoNV VkDedicatedAllocationBufferCreateInfoNV registry at www.khronos.org>
-data VkDedicatedAllocationBufferCreateInfoNV = VkDedicatedAllocationBufferCreateInfoNV## Addr##
-                                                                                        ByteArray##
+type VkDedicatedAllocationBufferCreateInfoNV =
+     VulkanStruct VkDedicatedAllocationBufferCreateInfoNV' -- ' closing tick for hsc2hs
 
+data VkDedicatedAllocationBufferCreateInfoNV' -- ' closing tick for hsc2hs
+
 instance Eq VkDedicatedAllocationBufferCreateInfoNV where
-        (VkDedicatedAllocationBufferCreateInfoNV## a _) ==
-          x@(VkDedicatedAllocationBufferCreateInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDedicatedAllocationBufferCreateInfoNV where
-        (VkDedicatedAllocationBufferCreateInfoNV## a _) `compare`
-          x@(VkDedicatedAllocationBufferCreateInfoNV## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -66,21 +64,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDedicatedAllocationBufferCreateInfoNV
-         where
-        unsafeAddr (VkDedicatedAllocationBufferCreateInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDedicatedAllocationBufferCreateInfoNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDedicatedAllocationBufferCreateInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDedicatedAllocationBufferCreateInfoNV
          where
         type StructFields VkDedicatedAllocationBufferCreateInfoNV =
@@ -225,20 +208,18 @@
 --   > } VkDedicatedAllocationImageCreateInfoNV;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDedicatedAllocationImageCreateInfoNV VkDedicatedAllocationImageCreateInfoNV registry at www.khronos.org>
-data VkDedicatedAllocationImageCreateInfoNV = VkDedicatedAllocationImageCreateInfoNV## Addr##
-                                                                                      ByteArray##
+type VkDedicatedAllocationImageCreateInfoNV =
+     VulkanStruct VkDedicatedAllocationImageCreateInfoNV' -- ' closing tick for hsc2hs
 
+data VkDedicatedAllocationImageCreateInfoNV' -- ' closing tick for hsc2hs
+
 instance Eq VkDedicatedAllocationImageCreateInfoNV where
-        (VkDedicatedAllocationImageCreateInfoNV## a _) ==
-          x@(VkDedicatedAllocationImageCreateInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDedicatedAllocationImageCreateInfoNV where
-        (VkDedicatedAllocationImageCreateInfoNV## a _) `compare`
-          x@(VkDedicatedAllocationImageCreateInfoNV## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -258,21 +239,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDedicatedAllocationImageCreateInfoNV
-         where
-        unsafeAddr (VkDedicatedAllocationImageCreateInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDedicatedAllocationImageCreateInfoNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDedicatedAllocationImageCreateInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDedicatedAllocationImageCreateInfoNV where
         type StructFields VkDedicatedAllocationImageCreateInfoNV =
              '["sType", "pNext", "dedicatedAllocation"] -- ' closing tick for hsc2hs
@@ -417,20 +383,18 @@
 --   > } VkDedicatedAllocationMemoryAllocateInfoNV;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDedicatedAllocationMemoryAllocateInfoNV VkDedicatedAllocationMemoryAllocateInfoNV registry at www.khronos.org>
-data VkDedicatedAllocationMemoryAllocateInfoNV = VkDedicatedAllocationMemoryAllocateInfoNV## Addr##
-                                                                                            ByteArray##
+type VkDedicatedAllocationMemoryAllocateInfoNV =
+     VulkanStruct VkDedicatedAllocationMemoryAllocateInfoNV' -- ' closing tick for hsc2hs
 
+data VkDedicatedAllocationMemoryAllocateInfoNV' -- ' closing tick for hsc2hs
+
 instance Eq VkDedicatedAllocationMemoryAllocateInfoNV where
-        (VkDedicatedAllocationMemoryAllocateInfoNV## a _) ==
-          x@(VkDedicatedAllocationMemoryAllocateInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDedicatedAllocationMemoryAllocateInfoNV where
-        (VkDedicatedAllocationMemoryAllocateInfoNV## a _) `compare`
-          x@(VkDedicatedAllocationMemoryAllocateInfoNV## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -449,23 +413,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkDedicatedAllocationMemoryAllocateInfoNV
-         where
-        unsafeAddr (VkDedicatedAllocationMemoryAllocateInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDedicatedAllocationMemoryAllocateInfoNV## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDedicatedAllocationMemoryAllocateInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkDedicatedAllocationMemoryAllocateInfoNV
          where
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc
@@ -8,44 +8,46 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Descriptor
-       (VkDescriptorBufferInfo(..), VkDescriptorImageInfo(..),
-        VkDescriptorPoolCreateInfo(..), VkDescriptorPoolSize(..),
-        VkDescriptorSetAllocateInfo(..), VkDescriptorSetLayoutBinding(..),
-        VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(..),
-        VkDescriptorSetLayoutCreateInfo(..),
-        VkDescriptorSetLayoutSupport(..), VkDescriptorSetLayoutSupportKHR,
-        VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(..),
-        VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(..),
-        VkDescriptorUpdateTemplateCreateInfo(..),
+       (VkDescriptorBufferInfo, VkDescriptorBufferInfo', -- ' closing tick for hsc2hs
+        VkDescriptorImageInfo, VkDescriptorImageInfo', -- ' closing tick for hsc2hs
+        VkDescriptorPoolCreateInfo, VkDescriptorPoolCreateInfo', -- ' closing tick for hsc2hs
+        VkDescriptorPoolSize, VkDescriptorPoolSize', -- ' closing tick for hsc2hs
+        VkDescriptorSetAllocateInfo, VkDescriptorSetAllocateInfo', -- ' closing tick for hsc2hs
+        VkDescriptorSetLayoutBinding, VkDescriptorSetLayoutBinding', -- ' closing tick for hsc2hs
+        VkDescriptorSetLayoutBindingFlagsCreateInfoEXT,
+        VkDescriptorSetLayoutBindingFlagsCreateInfoEXT', -- ' closing tick for hsc2hs
+        VkDescriptorSetLayoutCreateInfo, VkDescriptorSetLayoutCreateInfo', -- ' closing tick for hsc2hs
+        VkDescriptorSetLayoutSupport, VkDescriptorSetLayoutSupport', -- ' closing tick for hsc2hs
+        VkDescriptorSetLayoutSupportKHR,
+        VkDescriptorSetVariableDescriptorCountAllocateInfoEXT,
+        VkDescriptorSetVariableDescriptorCountAllocateInfoEXT', -- ' closing tick for hsc2hs
+        VkDescriptorSetVariableDescriptorCountLayoutSupportEXT,
+        VkDescriptorSetVariableDescriptorCountLayoutSupportEXT', -- ' closing tick for hsc2hs
+        VkDescriptorUpdateTemplateCreateInfo,
+        VkDescriptorUpdateTemplateCreateInfo', -- ' closing tick for hsc2hs
         VkDescriptorUpdateTemplateCreateInfoKHR,
-        VkDescriptorUpdateTemplateEntry(..),
+        VkDescriptorUpdateTemplateEntry, VkDescriptorUpdateTemplateEntry', -- ' closing tick for hsc2hs
         VkDescriptorUpdateTemplateEntryKHR)
        where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes          (VkBool32,
-                                                           VkDeviceSize)
-import           Graphics.Vulkan.Types.Bitmasks           (VkDescriptorUpdateTemplateCreateFlags)
-import           Graphics.Vulkan.Types.Enum.Descriptor    (VkDescriptorBindingFlagsEXT,
-                                                           VkDescriptorPoolCreateFlags,
-                                                           VkDescriptorSetLayoutCreateFlags,
-                                                           VkDescriptorType,
-                                                           VkDescriptorUpdateTemplateType)
-import           Graphics.Vulkan.Types.Enum.Image         (VkImageLayout)
-import           Graphics.Vulkan.Types.Enum.Pipeline      (VkPipelineBindPoint)
-import           Graphics.Vulkan.Types.Enum.Shader        (VkShaderStageFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles            (VkBuffer,
-                                                           VkDescriptorPool,
-                                                           VkDescriptorSetLayout,
-                                                           VkImageView,
-                                                           VkPipelineLayout,
-                                                           VkSampler)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes          (VkBool32, VkDeviceSize)
+import Graphics.Vulkan.Types.Bitmasks           (VkDescriptorUpdateTemplateCreateFlags)
+import Graphics.Vulkan.Types.Enum.Descriptor    (VkDescriptorBindingFlagsEXT,
+                                                 VkDescriptorPoolCreateFlags,
+                                                 VkDescriptorSetLayoutCreateFlags,
+                                                 VkDescriptorType,
+                                                 VkDescriptorUpdateTemplateType)
+import Graphics.Vulkan.Types.Enum.Image         (VkImageLayout)
+import Graphics.Vulkan.Types.Enum.Pipeline      (VkPipelineBindPoint)
+import Graphics.Vulkan.Types.Enum.Shader        (VkShaderStageFlags)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Handles            (VkBuffer, VkDescriptorPool,
+                                                 VkDescriptorSetLayout,
+                                                 VkImageView, VkPipelineLayout,
+                                                 VkSampler)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkDescriptorBufferInfo {
 --   >     VkBuffer               buffer;
@@ -54,18 +56,17 @@
 --   > } VkDescriptorBufferInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorBufferInfo VkDescriptorBufferInfo registry at www.khronos.org>
-data VkDescriptorBufferInfo = VkDescriptorBufferInfo## Addr##
-                                                      ByteArray##
+type VkDescriptorBufferInfo = VulkanStruct VkDescriptorBufferInfo' -- ' closing tick for hsc2hs
 
+data VkDescriptorBufferInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkDescriptorBufferInfo where
-        (VkDescriptorBufferInfo## a _) == x@(VkDescriptorBufferInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDescriptorBufferInfo where
-        (VkDescriptorBufferInfo## a _) `compare`
-          x@(VkDescriptorBufferInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -83,18 +84,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDescriptorBufferInfo where
-        unsafeAddr (VkDescriptorBufferInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDescriptorBufferInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorBufferInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDescriptorBufferInfo where
         type StructFields VkDescriptorBufferInfo =
              '["buffer", "offset", "range"] -- ' closing tick for hsc2hs
@@ -214,18 +203,17 @@
 --   > } VkDescriptorImageInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorImageInfo VkDescriptorImageInfo registry at www.khronos.org>
-data VkDescriptorImageInfo = VkDescriptorImageInfo## Addr##
-                                                    ByteArray##
+type VkDescriptorImageInfo = VulkanStruct VkDescriptorImageInfo' -- ' closing tick for hsc2hs
 
+data VkDescriptorImageInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkDescriptorImageInfo where
-        (VkDescriptorImageInfo## a _) == x@(VkDescriptorImageInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDescriptorImageInfo where
-        (VkDescriptorImageInfo## a _) `compare`
-          x@(VkDescriptorImageInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -243,18 +231,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDescriptorImageInfo where
-        unsafeAddr (VkDescriptorImageInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDescriptorImageInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorImageInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDescriptorImageInfo where
         type StructFields VkDescriptorImageInfo =
              '["sampler", "imageView", "imageLayout"] -- ' closing tick for hsc2hs
@@ -379,19 +355,18 @@
 --   > } VkDescriptorPoolCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorPoolCreateInfo VkDescriptorPoolCreateInfo registry at www.khronos.org>
-data VkDescriptorPoolCreateInfo = VkDescriptorPoolCreateInfo## Addr##
-                                                              ByteArray##
+type VkDescriptorPoolCreateInfo =
+     VulkanStruct VkDescriptorPoolCreateInfo' -- ' closing tick for hsc2hs
 
+data VkDescriptorPoolCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkDescriptorPoolCreateInfo where
-        (VkDescriptorPoolCreateInfo## a _) ==
-          x@(VkDescriptorPoolCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDescriptorPoolCreateInfo where
-        (VkDescriptorPoolCreateInfo## a _) `compare`
-          x@(VkDescriptorPoolCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -409,20 +384,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDescriptorPoolCreateInfo where
-        unsafeAddr (VkDescriptorPoolCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDescriptorPoolCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorPoolCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDescriptorPoolCreateInfo where
         type StructFields VkDescriptorPoolCreateInfo =
              '["sType", "pNext", "flags", "maxSets", "poolSizeCount", -- ' closing tick for hsc2hs
@@ -654,17 +615,17 @@
 --   > } VkDescriptorPoolSize;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorPoolSize VkDescriptorPoolSize registry at www.khronos.org>
-data VkDescriptorPoolSize = VkDescriptorPoolSize## Addr## ByteArray##
+type VkDescriptorPoolSize = VulkanStruct VkDescriptorPoolSize' -- ' closing tick for hsc2hs
 
+data VkDescriptorPoolSize' -- ' closing tick for hsc2hs
+
 instance Eq VkDescriptorPoolSize where
-        (VkDescriptorPoolSize## a _) == x@(VkDescriptorPoolSize## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDescriptorPoolSize where
-        (VkDescriptorPoolSize## a _) `compare` x@(VkDescriptorPoolSize## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -682,18 +643,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDescriptorPoolSize where
-        unsafeAddr (VkDescriptorPoolSize## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDescriptorPoolSize## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorPoolSize## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDescriptorPoolSize where
         type StructFields VkDescriptorPoolSize =
              '["type", "descriptorCount"] -- ' closing tick for hsc2hs
@@ -782,19 +731,18 @@
 --   > } VkDescriptorSetAllocateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorSetAllocateInfo VkDescriptorSetAllocateInfo registry at www.khronos.org>
-data VkDescriptorSetAllocateInfo = VkDescriptorSetAllocateInfo## Addr##
-                                                                ByteArray##
+type VkDescriptorSetAllocateInfo =
+     VulkanStruct VkDescriptorSetAllocateInfo' -- ' closing tick for hsc2hs
 
+data VkDescriptorSetAllocateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkDescriptorSetAllocateInfo where
-        (VkDescriptorSetAllocateInfo## a _) ==
-          x@(VkDescriptorSetAllocateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDescriptorSetAllocateInfo where
-        (VkDescriptorSetAllocateInfo## a _) `compare`
-          x@(VkDescriptorSetAllocateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -812,20 +760,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDescriptorSetAllocateInfo where
-        unsafeAddr (VkDescriptorSetAllocateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDescriptorSetAllocateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorSetAllocateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDescriptorSetAllocateInfo where
         type StructFields VkDescriptorSetAllocateInfo =
              '["sType", "pNext", "descriptorPool", "descriptorSetCount", -- ' closing tick for hsc2hs
@@ -1032,19 +966,18 @@
 --   > } VkDescriptorSetLayoutBinding;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorSetLayoutBinding VkDescriptorSetLayoutBinding registry at www.khronos.org>
-data VkDescriptorSetLayoutBinding = VkDescriptorSetLayoutBinding## Addr##
-                                                                  ByteArray##
+type VkDescriptorSetLayoutBinding =
+     VulkanStruct VkDescriptorSetLayoutBinding' -- ' closing tick for hsc2hs
 
+data VkDescriptorSetLayoutBinding' -- ' closing tick for hsc2hs
+
 instance Eq VkDescriptorSetLayoutBinding where
-        (VkDescriptorSetLayoutBinding## a _) ==
-          x@(VkDescriptorSetLayoutBinding## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDescriptorSetLayoutBinding where
-        (VkDescriptorSetLayoutBinding## a _) `compare`
-          x@(VkDescriptorSetLayoutBinding## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1063,20 +996,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDescriptorSetLayoutBinding where
-        unsafeAddr (VkDescriptorSetLayoutBinding## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDescriptorSetLayoutBinding## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorSetLayoutBinding##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDescriptorSetLayoutBinding where
         type StructFields VkDescriptorSetLayoutBinding =
              '["binding", "descriptorType", "descriptorCount", "stageFlags", -- ' closing tick for hsc2hs
@@ -1288,20 +1207,18 @@
 --   > } VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorSetLayoutBindingFlagsCreateInfoEXT VkDescriptorSetLayoutBindingFlagsCreateInfoEXT registry at www.khronos.org>
-data VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfoEXT## Addr##
-                                                                                                      ByteArray##
+type VkDescriptorSetLayoutBindingFlagsCreateInfoEXT =
+     VulkanStruct VkDescriptorSetLayoutBindingFlagsCreateInfoEXT' -- ' closing tick for hsc2hs
 
+data VkDescriptorSetLayoutBindingFlagsCreateInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkDescriptorSetLayoutBindingFlagsCreateInfoEXT where
-        (VkDescriptorSetLayoutBindingFlagsCreateInfoEXT## a _) ==
-          x@(VkDescriptorSetLayoutBindingFlagsCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDescriptorSetLayoutBindingFlagsCreateInfoEXT where
-        (VkDescriptorSetLayoutBindingFlagsCreateInfoEXT## a _) `compare`
-          x@(VkDescriptorSetLayoutBindingFlagsCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1322,24 +1239,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim
-           VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
-         where
-        unsafeAddr (VkDescriptorSetLayoutBindingFlagsCreateInfoEXT## a _)
-          = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkDescriptorSetLayoutBindingFlagsCreateInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorSetLayoutBindingFlagsCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal
            VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
          where
@@ -1556,19 +1455,18 @@
 --   > } VkDescriptorSetLayoutCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorSetLayoutCreateInfo VkDescriptorSetLayoutCreateInfo registry at www.khronos.org>
-data VkDescriptorSetLayoutCreateInfo = VkDescriptorSetLayoutCreateInfo## Addr##
-                                                                        ByteArray##
+type VkDescriptorSetLayoutCreateInfo =
+     VulkanStruct VkDescriptorSetLayoutCreateInfo' -- ' closing tick for hsc2hs
 
+data VkDescriptorSetLayoutCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkDescriptorSetLayoutCreateInfo where
-        (VkDescriptorSetLayoutCreateInfo## a _) ==
-          x@(VkDescriptorSetLayoutCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDescriptorSetLayoutCreateInfo where
-        (VkDescriptorSetLayoutCreateInfo## a _) `compare`
-          x@(VkDescriptorSetLayoutCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1587,20 +1485,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDescriptorSetLayoutCreateInfo where
-        unsafeAddr (VkDescriptorSetLayoutCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDescriptorSetLayoutCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorSetLayoutCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDescriptorSetLayoutCreateInfo where
         type StructFields VkDescriptorSetLayoutCreateInfo =
              '["sType", "pNext", "flags", "bindingCount", "pBindings"] -- ' closing tick for hsc2hs
@@ -1801,19 +1685,18 @@
 --   > } VkDescriptorSetLayoutSupport;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupport registry at www.khronos.org>
-data VkDescriptorSetLayoutSupport = VkDescriptorSetLayoutSupport## Addr##
-                                                                  ByteArray##
+type VkDescriptorSetLayoutSupport =
+     VulkanStruct VkDescriptorSetLayoutSupport' -- ' closing tick for hsc2hs
 
+data VkDescriptorSetLayoutSupport' -- ' closing tick for hsc2hs
+
 instance Eq VkDescriptorSetLayoutSupport where
-        (VkDescriptorSetLayoutSupport## a _) ==
-          x@(VkDescriptorSetLayoutSupport## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDescriptorSetLayoutSupport where
-        (VkDescriptorSetLayoutSupport## a _) `compare`
-          x@(VkDescriptorSetLayoutSupport## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1832,20 +1715,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDescriptorSetLayoutSupport where
-        unsafeAddr (VkDescriptorSetLayoutSupport## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDescriptorSetLayoutSupport## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorSetLayoutSupport##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDescriptorSetLayoutSupport where
         type StructFields VkDescriptorSetLayoutSupport =
              '["sType", "pNext", "supported"] -- ' closing tick for hsc2hs
@@ -1974,23 +1843,20 @@
 --   > } VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorSetVariableDescriptorCountAllocateInfoEXT VkDescriptorSetVariableDescriptorCountAllocateInfoEXT registry at www.khronos.org>
-data VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfoEXT## Addr##
-                                                                                                                    ByteArray##
+type VkDescriptorSetVariableDescriptorCountAllocateInfoEXT =
+     VulkanStruct VkDescriptorSetVariableDescriptorCountAllocateInfoEXT' -- ' closing tick for hsc2hs
 
+data VkDescriptorSetVariableDescriptorCountAllocateInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
          where
-        (VkDescriptorSetVariableDescriptorCountAllocateInfoEXT## a _) ==
-          x@(VkDescriptorSetVariableDescriptorCountAllocateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
          where
-        (VkDescriptorSetVariableDescriptorCountAllocateInfoEXT## a _)
-          `compare`
-          x@(VkDescriptorSetVariableDescriptorCountAllocateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2012,24 +1878,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim
-           VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
-         where
-        unsafeAddr
-          (VkDescriptorSetVariableDescriptorCountAllocateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkDescriptorSetVariableDescriptorCountAllocateInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorSetVariableDescriptorCountAllocateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal
            VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
          where
@@ -2255,23 +2103,21 @@
 --   > } VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorSetVariableDescriptorCountLayoutSupportEXT VkDescriptorSetVariableDescriptorCountLayoutSupportEXT registry at www.khronos.org>
-data VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupportEXT## Addr##
-                                                                                                                      ByteArray##
+type VkDescriptorSetVariableDescriptorCountLayoutSupportEXT =
+     VulkanStruct
+       VkDescriptorSetVariableDescriptorCountLayoutSupportEXT' -- ' closing tick for hsc2hs
 
+data VkDescriptorSetVariableDescriptorCountLayoutSupportEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
          where
-        (VkDescriptorSetVariableDescriptorCountLayoutSupportEXT## a _) ==
-          x@(VkDescriptorSetVariableDescriptorCountLayoutSupportEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
          where
-        (VkDescriptorSetVariableDescriptorCountLayoutSupportEXT## a _)
-          `compare`
-          x@(VkDescriptorSetVariableDescriptorCountLayoutSupportEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2293,24 +2139,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim
-           VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
-         where
-        unsafeAddr
-          (VkDescriptorSetVariableDescriptorCountLayoutSupportEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkDescriptorSetVariableDescriptorCountLayoutSupportEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorSetVariableDescriptorCountLayoutSupportEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal
            VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
          where
@@ -2496,20 +2324,18 @@
 --   > } VkDescriptorUpdateTemplateCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfo registry at www.khronos.org>
-data VkDescriptorUpdateTemplateCreateInfo = VkDescriptorUpdateTemplateCreateInfo## Addr##
-                                                                                  ByteArray##
+type VkDescriptorUpdateTemplateCreateInfo =
+     VulkanStruct VkDescriptorUpdateTemplateCreateInfo' -- ' closing tick for hsc2hs
 
+data VkDescriptorUpdateTemplateCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkDescriptorUpdateTemplateCreateInfo where
-        (VkDescriptorUpdateTemplateCreateInfo## a _) ==
-          x@(VkDescriptorUpdateTemplateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDescriptorUpdateTemplateCreateInfo where
-        (VkDescriptorUpdateTemplateCreateInfo## a _) `compare`
-          x@(VkDescriptorUpdateTemplateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2529,21 +2355,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDescriptorUpdateTemplateCreateInfo
-         where
-        unsafeAddr (VkDescriptorUpdateTemplateCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDescriptorUpdateTemplateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorUpdateTemplateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDescriptorUpdateTemplateCreateInfo where
         type StructFields VkDescriptorUpdateTemplateCreateInfo =
              '["sType", "pNext", "flags", "descriptorUpdateEntryCount", -- ' closing tick for hsc2hs
@@ -3012,19 +2823,18 @@
 --   > } VkDescriptorUpdateTemplateEntry;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntry registry at www.khronos.org>
-data VkDescriptorUpdateTemplateEntry = VkDescriptorUpdateTemplateEntry## Addr##
-                                                                        ByteArray##
+type VkDescriptorUpdateTemplateEntry =
+     VulkanStruct VkDescriptorUpdateTemplateEntry' -- ' closing tick for hsc2hs
 
+data VkDescriptorUpdateTemplateEntry' -- ' closing tick for hsc2hs
+
 instance Eq VkDescriptorUpdateTemplateEntry where
-        (VkDescriptorUpdateTemplateEntry## a _) ==
-          x@(VkDescriptorUpdateTemplateEntry## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDescriptorUpdateTemplateEntry where
-        (VkDescriptorUpdateTemplateEntry## a _) `compare`
-          x@(VkDescriptorUpdateTemplateEntry## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -3042,20 +2852,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDescriptorUpdateTemplateEntry where
-        unsafeAddr (VkDescriptorUpdateTemplateEntry## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDescriptorUpdateTemplateEntry## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorUpdateTemplateEntry##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkDescriptorUpdateTemplateEntry where
         type StructFields VkDescriptorUpdateTemplateEntry =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Device.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Device.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Device.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Device.hsc
@@ -12,55 +12,52 @@
 {-# LANGUAGE TypeFamilies          #-}
 {-# LANGUAGE UndecidableInstances  #-}
 module Graphics.Vulkan.Types.Struct.Device
-       (VkDeviceCreateInfo(..), VkDeviceEventInfoEXT(..),
-        VkDeviceGeneratedCommandsFeaturesNVX(..),
-        VkDeviceGeneratedCommandsLimitsNVX(..),
-        VkDeviceGroupBindSparseInfo(..), VkDeviceGroupBindSparseInfoKHR,
-        VkDeviceGroupCommandBufferBeginInfo(..),
+       (VkDeviceCreateInfo, VkDeviceCreateInfo', VkDeviceEventInfoEXT, -- ' closing tick for hsc2hs
+        VkDeviceEventInfoEXT', VkDeviceGeneratedCommandsFeaturesNVX, -- ' closing tick for hsc2hs
+        VkDeviceGeneratedCommandsFeaturesNVX', -- ' closing tick for hsc2hs
+        VkDeviceGeneratedCommandsLimitsNVX,
+        VkDeviceGeneratedCommandsLimitsNVX', VkDeviceGroupBindSparseInfo, -- ' closing tick for hsc2hs
+        VkDeviceGroupBindSparseInfo', VkDeviceGroupBindSparseInfoKHR, -- ' closing tick for hsc2hs
+        VkDeviceGroupCommandBufferBeginInfo,
+        VkDeviceGroupCommandBufferBeginInfo', -- ' closing tick for hsc2hs
         VkDeviceGroupCommandBufferBeginInfoKHR,
-        VkDeviceGroupDeviceCreateInfo(..),
+        VkDeviceGroupDeviceCreateInfo, VkDeviceGroupDeviceCreateInfo', -- ' closing tick for hsc2hs
         VkDeviceGroupDeviceCreateInfoKHR,
-        VkDeviceGroupPresentCapabilitiesKHR(..),
-        VkDeviceGroupPresentInfoKHR(..),
-        VkDeviceGroupRenderPassBeginInfo(..),
-        VkDeviceGroupRenderPassBeginInfoKHR, VkDeviceGroupSubmitInfo(..),
-        VkDeviceGroupSubmitInfoKHR,
-        VkDeviceGroupSwapchainCreateInfoKHR(..),
-        VkDeviceQueueCreateInfo(..),
-        VkDeviceQueueGlobalPriorityCreateInfoEXT(..),
-        VkDeviceQueueInfo2(..))
+        VkDeviceGroupPresentCapabilitiesKHR,
+        VkDeviceGroupPresentCapabilitiesKHR', VkDeviceGroupPresentInfoKHR, -- ' closing tick for hsc2hs
+        VkDeviceGroupPresentInfoKHR', VkDeviceGroupRenderPassBeginInfo, -- ' closing tick for hsc2hs
+        VkDeviceGroupRenderPassBeginInfo', -- ' closing tick for hsc2hs
+        VkDeviceGroupRenderPassBeginInfoKHR, VkDeviceGroupSubmitInfo,
+        VkDeviceGroupSubmitInfo', VkDeviceGroupSubmitInfoKHR, -- ' closing tick for hsc2hs
+        VkDeviceGroupSwapchainCreateInfoKHR,
+        VkDeviceGroupSwapchainCreateInfoKHR', VkDeviceQueueCreateInfo, -- ' closing tick for hsc2hs
+        VkDeviceQueueCreateInfo', VkDeviceQueueGlobalPriorityCreateInfoEXT, -- ' closing tick for hsc2hs
+        VkDeviceQueueGlobalPriorityCreateInfoEXT', VkDeviceQueueInfo2, -- ' closing tick for hsc2hs
+        VkDeviceQueueInfo2') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                                    (Storable (..))
-import           GHC.Base                                            (Addr##,
-                                                                      ByteArray##,
-                                                                      Proxy##,
-                                                                      byteArrayContents##,
-                                                                      plusAddr##,
-                                                                      proxy##)
-import           GHC.TypeLits                                        (KnownNat,
-                                                                      natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Constants                           (VK_MAX_DEVICE_GROUP_SIZE,
-                                                                      pattern VK_MAX_DEVICE_GROUP_SIZE)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                     (VkBool32)
-import           Graphics.Vulkan.Types.Bitmasks                      (VkDeviceCreateFlags)
-import           Graphics.Vulkan.Types.Enum.Device                   (VkDeviceEventTypeEXT,
-                                                                      VkDeviceGroupPresentModeFlagBitsKHR,
-                                                                      VkDeviceGroupPresentModeFlagsKHR,
-                                                                      VkDeviceQueueCreateFlags)
-import           Graphics.Vulkan.Types.Enum.Queue                    (VkQueueGlobalPriorityEXT)
-import           Graphics.Vulkan.Types.Enum.StructureType            (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                       (VkPhysicalDevice)
-import           Graphics.Vulkan.Types.Struct.Bind                   (VkBindSparseInfo)
-import           Graphics.Vulkan.Types.Struct.Command                (VkCommandBufferBeginInfo)
-import           Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures (VkPhysicalDeviceFeatures)
-import           Graphics.Vulkan.Types.Struct.Present                (VkPresentInfoKHR)
-import           Graphics.Vulkan.Types.Struct.Rect                   (VkRect2D)
-import           Graphics.Vulkan.Types.Struct.RenderPass             (VkRenderPassBeginInfo)
-import           Graphics.Vulkan.Types.Struct.SubmitInfo             (VkSubmitInfo)
-import           Graphics.Vulkan.Types.Struct.SwapchainC             (VkSwapchainCreateInfoKHR)
-import           System.IO.Unsafe                                    (unsafeDupablePerformIO)
+import Foreign.Storable                                    (Storable (..))
+import Graphics.Vulkan.Constants                           (VK_MAX_DEVICE_GROUP_SIZE,
+                                                            pattern VK_MAX_DEVICE_GROUP_SIZE)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes                     (VkBool32)
+import Graphics.Vulkan.Types.Bitmasks                      (VkDeviceCreateFlags)
+import Graphics.Vulkan.Types.Enum.Device                   (VkDeviceEventTypeEXT,
+                                                            VkDeviceGroupPresentModeFlagBitsKHR,
+                                                            VkDeviceGroupPresentModeFlagsKHR,
+                                                            VkDeviceQueueCreateFlags)
+import Graphics.Vulkan.Types.Enum.Queue                    (VkQueueGlobalPriorityEXT)
+import Graphics.Vulkan.Types.Enum.StructureType            (VkStructureType)
+import Graphics.Vulkan.Types.Handles                       (VkPhysicalDevice)
+import Graphics.Vulkan.Types.Struct.Bind                   (VkBindSparseInfo)
+import Graphics.Vulkan.Types.Struct.Command                (VkCommandBufferBeginInfo)
+import Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures (VkPhysicalDeviceFeatures)
+import Graphics.Vulkan.Types.Struct.Present                (VkPresentInfoKHR)
+import Graphics.Vulkan.Types.Struct.Rect                   (VkRect2D)
+import Graphics.Vulkan.Types.Struct.RenderPass             (VkRenderPassBeginInfo)
+import Graphics.Vulkan.Types.Struct.SubmitInfo             (VkSubmitInfo)
+import Graphics.Vulkan.Types.Struct.SwapchainC             (VkSwapchainCreateInfoKHR)
+import System.IO.Unsafe                                    (unsafeDupablePerformIO)
 
 -- | > typedef struct VkDeviceCreateInfo {
 --   >     VkStructureType sType;
@@ -76,17 +73,17 @@
 --   > } VkDeviceCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceCreateInfo VkDeviceCreateInfo registry at www.khronos.org>
-data VkDeviceCreateInfo = VkDeviceCreateInfo## Addr## ByteArray##
+type VkDeviceCreateInfo = VulkanStruct VkDeviceCreateInfo' -- ' closing tick for hsc2hs
 
+data VkDeviceCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkDeviceCreateInfo where
-        (VkDeviceCreateInfo## a _) == x@(VkDeviceCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDeviceCreateInfo where
-        (VkDeviceCreateInfo## a _) `compare` x@(VkDeviceCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -104,18 +101,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDeviceCreateInfo where
-        unsafeAddr (VkDeviceCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDeviceCreateInfo where
         type StructFields VkDeviceCreateInfo =
              '["sType", "pNext", "flags", "queueCreateInfoCount", -- ' closing tick for hsc2hs
@@ -508,17 +493,17 @@
 --   > } VkDeviceEventInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceEventInfoEXT VkDeviceEventInfoEXT registry at www.khronos.org>
-data VkDeviceEventInfoEXT = VkDeviceEventInfoEXT## Addr## ByteArray##
+type VkDeviceEventInfoEXT = VulkanStruct VkDeviceEventInfoEXT' -- ' closing tick for hsc2hs
 
+data VkDeviceEventInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkDeviceEventInfoEXT where
-        (VkDeviceEventInfoEXT## a _) == x@(VkDeviceEventInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDeviceEventInfoEXT where
-        (VkDeviceEventInfoEXT## a _) `compare` x@(VkDeviceEventInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -536,18 +521,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDeviceEventInfoEXT where
-        unsafeAddr (VkDeviceEventInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceEventInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceEventInfoEXT## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDeviceEventInfoEXT where
         type StructFields VkDeviceEventInfoEXT =
              '["sType", "pNext", "deviceEvent"] -- ' closing tick for hsc2hs
@@ -669,20 +642,18 @@
 --   > } VkDeviceGeneratedCommandsFeaturesNVX;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceGeneratedCommandsFeaturesNVX VkDeviceGeneratedCommandsFeaturesNVX registry at www.khronos.org>
-data VkDeviceGeneratedCommandsFeaturesNVX = VkDeviceGeneratedCommandsFeaturesNVX## Addr##
-                                                                                  ByteArray##
+type VkDeviceGeneratedCommandsFeaturesNVX =
+     VulkanStruct VkDeviceGeneratedCommandsFeaturesNVX' -- ' closing tick for hsc2hs
 
+data VkDeviceGeneratedCommandsFeaturesNVX' -- ' closing tick for hsc2hs
+
 instance Eq VkDeviceGeneratedCommandsFeaturesNVX where
-        (VkDeviceGeneratedCommandsFeaturesNVX## a _) ==
-          x@(VkDeviceGeneratedCommandsFeaturesNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDeviceGeneratedCommandsFeaturesNVX where
-        (VkDeviceGeneratedCommandsFeaturesNVX## a _) `compare`
-          x@(VkDeviceGeneratedCommandsFeaturesNVX## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -702,21 +673,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDeviceGeneratedCommandsFeaturesNVX
-         where
-        unsafeAddr (VkDeviceGeneratedCommandsFeaturesNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceGeneratedCommandsFeaturesNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceGeneratedCommandsFeaturesNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDeviceGeneratedCommandsFeaturesNVX where
         type StructFields VkDeviceGeneratedCommandsFeaturesNVX =
              '["sType", "pNext", "computeBindingPointSupport"] -- ' closing tick for hsc2hs
@@ -864,20 +820,18 @@
 --   > } VkDeviceGeneratedCommandsLimitsNVX;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceGeneratedCommandsLimitsNVX VkDeviceGeneratedCommandsLimitsNVX registry at www.khronos.org>
-data VkDeviceGeneratedCommandsLimitsNVX = VkDeviceGeneratedCommandsLimitsNVX## Addr##
-                                                                              ByteArray##
+type VkDeviceGeneratedCommandsLimitsNVX =
+     VulkanStruct VkDeviceGeneratedCommandsLimitsNVX' -- ' closing tick for hsc2hs
 
+data VkDeviceGeneratedCommandsLimitsNVX' -- ' closing tick for hsc2hs
+
 instance Eq VkDeviceGeneratedCommandsLimitsNVX where
-        (VkDeviceGeneratedCommandsLimitsNVX## a _) ==
-          x@(VkDeviceGeneratedCommandsLimitsNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDeviceGeneratedCommandsLimitsNVX where
-        (VkDeviceGeneratedCommandsLimitsNVX## a _) `compare`
-          x@(VkDeviceGeneratedCommandsLimitsNVX## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -896,20 +850,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDeviceGeneratedCommandsLimitsNVX where
-        unsafeAddr (VkDeviceGeneratedCommandsLimitsNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceGeneratedCommandsLimitsNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceGeneratedCommandsLimitsNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDeviceGeneratedCommandsLimitsNVX where
         type StructFields VkDeviceGeneratedCommandsLimitsNVX =
              '["sType", "pNext", "maxIndirectCommandsLayoutTokenCount", -- ' closing tick for hsc2hs
@@ -1262,19 +1202,18 @@
 --   > } VkDeviceGroupBindSparseInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfo registry at www.khronos.org>
-data VkDeviceGroupBindSparseInfo = VkDeviceGroupBindSparseInfo## Addr##
-                                                                ByteArray##
+type VkDeviceGroupBindSparseInfo =
+     VulkanStruct VkDeviceGroupBindSparseInfo' -- ' closing tick for hsc2hs
 
+data VkDeviceGroupBindSparseInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkDeviceGroupBindSparseInfo where
-        (VkDeviceGroupBindSparseInfo## a _) ==
-          x@(VkDeviceGroupBindSparseInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDeviceGroupBindSparseInfo where
-        (VkDeviceGroupBindSparseInfo## a _) `compare`
-          x@(VkDeviceGroupBindSparseInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1292,20 +1231,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDeviceGroupBindSparseInfo where
-        unsafeAddr (VkDeviceGroupBindSparseInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceGroupBindSparseInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceGroupBindSparseInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDeviceGroupBindSparseInfo where
         type StructFields VkDeviceGroupBindSparseInfo =
              '["sType", "pNext", "resourceDeviceIndex", "memoryDeviceIndex"] -- ' closing tick for hsc2hs
@@ -1478,20 +1403,18 @@
 --   > } VkDeviceGroupCommandBufferBeginInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfo registry at www.khronos.org>
-data VkDeviceGroupCommandBufferBeginInfo = VkDeviceGroupCommandBufferBeginInfo## Addr##
-                                                                                ByteArray##
+type VkDeviceGroupCommandBufferBeginInfo =
+     VulkanStruct VkDeviceGroupCommandBufferBeginInfo' -- ' closing tick for hsc2hs
 
+data VkDeviceGroupCommandBufferBeginInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkDeviceGroupCommandBufferBeginInfo where
-        (VkDeviceGroupCommandBufferBeginInfo## a _) ==
-          x@(VkDeviceGroupCommandBufferBeginInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDeviceGroupCommandBufferBeginInfo where
-        (VkDeviceGroupCommandBufferBeginInfo## a _) `compare`
-          x@(VkDeviceGroupCommandBufferBeginInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1510,21 +1433,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDeviceGroupCommandBufferBeginInfo
-         where
-        unsafeAddr (VkDeviceGroupCommandBufferBeginInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceGroupCommandBufferBeginInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceGroupCommandBufferBeginInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDeviceGroupCommandBufferBeginInfo where
         type StructFields VkDeviceGroupCommandBufferBeginInfo =
              '["sType", "pNext", "deviceMask"] -- ' closing tick for hsc2hs
@@ -1663,19 +1571,18 @@
 --   > } VkDeviceGroupDeviceCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfo registry at www.khronos.org>
-data VkDeviceGroupDeviceCreateInfo = VkDeviceGroupDeviceCreateInfo## Addr##
-                                                                    ByteArray##
+type VkDeviceGroupDeviceCreateInfo =
+     VulkanStruct VkDeviceGroupDeviceCreateInfo' -- ' closing tick for hsc2hs
 
+data VkDeviceGroupDeviceCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkDeviceGroupDeviceCreateInfo where
-        (VkDeviceGroupDeviceCreateInfo## a _) ==
-          x@(VkDeviceGroupDeviceCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDeviceGroupDeviceCreateInfo where
-        (VkDeviceGroupDeviceCreateInfo## a _) `compare`
-          x@(VkDeviceGroupDeviceCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1694,20 +1601,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDeviceGroupDeviceCreateInfo where
-        unsafeAddr (VkDeviceGroupDeviceCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceGroupDeviceCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceGroupDeviceCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDeviceGroupDeviceCreateInfo where
         type StructFields VkDeviceGroupDeviceCreateInfo =
              '["sType", "pNext", "physicalDeviceCount", "pPhysicalDevices"] -- ' closing tick for hsc2hs
@@ -1885,20 +1778,18 @@
 --   > } VkDeviceGroupPresentCapabilitiesKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceGroupPresentCapabilitiesKHR VkDeviceGroupPresentCapabilitiesKHR registry at www.khronos.org>
-data VkDeviceGroupPresentCapabilitiesKHR = VkDeviceGroupPresentCapabilitiesKHR## Addr##
-                                                                                ByteArray##
+type VkDeviceGroupPresentCapabilitiesKHR =
+     VulkanStruct VkDeviceGroupPresentCapabilitiesKHR' -- ' closing tick for hsc2hs
 
+data VkDeviceGroupPresentCapabilitiesKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkDeviceGroupPresentCapabilitiesKHR where
-        (VkDeviceGroupPresentCapabilitiesKHR## a _) ==
-          x@(VkDeviceGroupPresentCapabilitiesKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDeviceGroupPresentCapabilitiesKHR where
-        (VkDeviceGroupPresentCapabilitiesKHR## a _) `compare`
-          x@(VkDeviceGroupPresentCapabilitiesKHR## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1917,21 +1808,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDeviceGroupPresentCapabilitiesKHR
-         where
-        unsafeAddr (VkDeviceGroupPresentCapabilitiesKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceGroupPresentCapabilitiesKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceGroupPresentCapabilitiesKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDeviceGroupPresentCapabilitiesKHR where
         type StructFields VkDeviceGroupPresentCapabilitiesKHR =
              '["sType", "pNext", "presentMask", "modes"] -- ' closing tick for hsc2hs
@@ -2138,19 +2014,18 @@
 --   > } VkDeviceGroupPresentInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceGroupPresentInfoKHR VkDeviceGroupPresentInfoKHR registry at www.khronos.org>
-data VkDeviceGroupPresentInfoKHR = VkDeviceGroupPresentInfoKHR## Addr##
-                                                                ByteArray##
+type VkDeviceGroupPresentInfoKHR =
+     VulkanStruct VkDeviceGroupPresentInfoKHR' -- ' closing tick for hsc2hs
 
+data VkDeviceGroupPresentInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkDeviceGroupPresentInfoKHR where
-        (VkDeviceGroupPresentInfoKHR## a _) ==
-          x@(VkDeviceGroupPresentInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDeviceGroupPresentInfoKHR where
-        (VkDeviceGroupPresentInfoKHR## a _) `compare`
-          x@(VkDeviceGroupPresentInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2168,20 +2043,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDeviceGroupPresentInfoKHR where
-        unsafeAddr (VkDeviceGroupPresentInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceGroupPresentInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceGroupPresentInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDeviceGroupPresentInfoKHR where
         type StructFields VkDeviceGroupPresentInfoKHR =
              '["sType", "pNext", "swapchainCount", "pDeviceMasks", "mode"] -- ' closing tick for hsc2hs
@@ -2385,20 +2246,18 @@
 --   > } VkDeviceGroupRenderPassBeginInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfo registry at www.khronos.org>
-data VkDeviceGroupRenderPassBeginInfo = VkDeviceGroupRenderPassBeginInfo## Addr##
-                                                                          ByteArray##
+type VkDeviceGroupRenderPassBeginInfo =
+     VulkanStruct VkDeviceGroupRenderPassBeginInfo' -- ' closing tick for hsc2hs
 
+data VkDeviceGroupRenderPassBeginInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkDeviceGroupRenderPassBeginInfo where
-        (VkDeviceGroupRenderPassBeginInfo## a _) ==
-          x@(VkDeviceGroupRenderPassBeginInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDeviceGroupRenderPassBeginInfo where
-        (VkDeviceGroupRenderPassBeginInfo## a _) `compare`
-          x@(VkDeviceGroupRenderPassBeginInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2417,20 +2276,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDeviceGroupRenderPassBeginInfo where
-        unsafeAddr (VkDeviceGroupRenderPassBeginInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceGroupRenderPassBeginInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceGroupRenderPassBeginInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDeviceGroupRenderPassBeginInfo where
         type StructFields VkDeviceGroupRenderPassBeginInfo =
              '["sType", "pNext", "deviceMask", "deviceRenderAreaCount", -- ' closing tick for hsc2hs
@@ -2665,18 +2510,18 @@
 --   > } VkDeviceGroupSubmitInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfo registry at www.khronos.org>
-data VkDeviceGroupSubmitInfo = VkDeviceGroupSubmitInfo## Addr##
-                                                        ByteArray##
+type VkDeviceGroupSubmitInfo =
+     VulkanStruct VkDeviceGroupSubmitInfo' -- ' closing tick for hsc2hs
 
+data VkDeviceGroupSubmitInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkDeviceGroupSubmitInfo where
-        (VkDeviceGroupSubmitInfo## a _) == x@(VkDeviceGroupSubmitInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDeviceGroupSubmitInfo where
-        (VkDeviceGroupSubmitInfo## a _) `compare`
-          x@(VkDeviceGroupSubmitInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2694,18 +2539,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDeviceGroupSubmitInfo where
-        unsafeAddr (VkDeviceGroupSubmitInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceGroupSubmitInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceGroupSubmitInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDeviceGroupSubmitInfo where
         type StructFields VkDeviceGroupSubmitInfo =
              '["sType", "pNext", "waitSemaphoreCount", -- ' closing tick for hsc2hs
@@ -3057,20 +2890,18 @@
 --   > } VkDeviceGroupSwapchainCreateInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceGroupSwapchainCreateInfoKHR VkDeviceGroupSwapchainCreateInfoKHR registry at www.khronos.org>
-data VkDeviceGroupSwapchainCreateInfoKHR = VkDeviceGroupSwapchainCreateInfoKHR## Addr##
-                                                                                ByteArray##
+type VkDeviceGroupSwapchainCreateInfoKHR =
+     VulkanStruct VkDeviceGroupSwapchainCreateInfoKHR' -- ' closing tick for hsc2hs
 
+data VkDeviceGroupSwapchainCreateInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkDeviceGroupSwapchainCreateInfoKHR where
-        (VkDeviceGroupSwapchainCreateInfoKHR## a _) ==
-          x@(VkDeviceGroupSwapchainCreateInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDeviceGroupSwapchainCreateInfoKHR where
-        (VkDeviceGroupSwapchainCreateInfoKHR## a _) `compare`
-          x@(VkDeviceGroupSwapchainCreateInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -3089,21 +2920,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDeviceGroupSwapchainCreateInfoKHR
-         where
-        unsafeAddr (VkDeviceGroupSwapchainCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceGroupSwapchainCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceGroupSwapchainCreateInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDeviceGroupSwapchainCreateInfoKHR where
         type StructFields VkDeviceGroupSwapchainCreateInfoKHR =
              '["sType", "pNext", "modes"] -- ' closing tick for hsc2hs
@@ -3239,18 +3055,18 @@
 --   > } VkDeviceQueueCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceQueueCreateInfo VkDeviceQueueCreateInfo registry at www.khronos.org>
-data VkDeviceQueueCreateInfo = VkDeviceQueueCreateInfo## Addr##
-                                                        ByteArray##
+type VkDeviceQueueCreateInfo =
+     VulkanStruct VkDeviceQueueCreateInfo' -- ' closing tick for hsc2hs
 
+data VkDeviceQueueCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkDeviceQueueCreateInfo where
-        (VkDeviceQueueCreateInfo## a _) == x@(VkDeviceQueueCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDeviceQueueCreateInfo where
-        (VkDeviceQueueCreateInfo## a _) `compare`
-          x@(VkDeviceQueueCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -3268,18 +3084,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDeviceQueueCreateInfo where
-        unsafeAddr (VkDeviceQueueCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceQueueCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceQueueCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDeviceQueueCreateInfo where
         type StructFields VkDeviceQueueCreateInfo =
              '["sType", "pNext", "flags", "queueFamilyIndex", "queueCount", -- ' closing tick for hsc2hs
@@ -3512,20 +3316,18 @@
 --   > } VkDeviceQueueGlobalPriorityCreateInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceQueueGlobalPriorityCreateInfoEXT VkDeviceQueueGlobalPriorityCreateInfoEXT registry at www.khronos.org>
-data VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoEXT## Addr##
-                                                                                          ByteArray##
+type VkDeviceQueueGlobalPriorityCreateInfoEXT =
+     VulkanStruct VkDeviceQueueGlobalPriorityCreateInfoEXT' -- ' closing tick for hsc2hs
 
+data VkDeviceQueueGlobalPriorityCreateInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkDeviceQueueGlobalPriorityCreateInfoEXT where
-        (VkDeviceQueueGlobalPriorityCreateInfoEXT## a _) ==
-          x@(VkDeviceQueueGlobalPriorityCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDeviceQueueGlobalPriorityCreateInfoEXT where
-        (VkDeviceQueueGlobalPriorityCreateInfoEXT## a _) `compare`
-          x@(VkDeviceQueueGlobalPriorityCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -3545,21 +3347,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDeviceQueueGlobalPriorityCreateInfoEXT
-         where
-        unsafeAddr (VkDeviceQueueGlobalPriorityCreateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceQueueGlobalPriorityCreateInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceQueueGlobalPriorityCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDeviceQueueGlobalPriorityCreateInfoEXT
          where
         type StructFields VkDeviceQueueGlobalPriorityCreateInfoEXT =
@@ -3707,17 +3494,17 @@
 --   > } VkDeviceQueueInfo2;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceQueueInfo2 VkDeviceQueueInfo2 registry at www.khronos.org>
-data VkDeviceQueueInfo2 = VkDeviceQueueInfo2## Addr## ByteArray##
+type VkDeviceQueueInfo2 = VulkanStruct VkDeviceQueueInfo2' -- ' closing tick for hsc2hs
 
+data VkDeviceQueueInfo2' -- ' closing tick for hsc2hs
+
 instance Eq VkDeviceQueueInfo2 where
-        (VkDeviceQueueInfo2## a _) == x@(VkDeviceQueueInfo2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDeviceQueueInfo2 where
-        (VkDeviceQueueInfo2## a _) `compare` x@(VkDeviceQueueInfo2## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -3734,18 +3521,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDeviceQueueInfo2 where
-        unsafeAddr (VkDeviceQueueInfo2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceQueueInfo2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceQueueInfo2## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkDeviceQueueInfo2 where
         type StructFields VkDeviceQueueInfo2 =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/DispatchIndirectCommand.hsc b/src-gen/Graphics/Vulkan/Types/Struct/DispatchIndirectCommand.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/DispatchIndirectCommand.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/DispatchIndirectCommand.hsc
@@ -8,14 +8,11 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.DispatchIndirectCommand
-       (VkDispatchIndirectCommand(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Base                         (Addr##, ByteArray##,
-                                                   byteArrayContents##,
-                                                   plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+       (VkDispatchIndirectCommand, VkDispatchIndirectCommand') where -- ' closing tick for hsc2hs
+import Foreign.Storable                 (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import System.IO.Unsafe                 (unsafeDupablePerformIO)
 
 -- | > typedef struct VkDispatchIndirectCommand {
 --   >     uint32_t               x;
@@ -24,18 +21,18 @@
 --   > } VkDispatchIndirectCommand;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDispatchIndirectCommand VkDispatchIndirectCommand registry at www.khronos.org>
-data VkDispatchIndirectCommand = VkDispatchIndirectCommand## Addr##
-                                                            ByteArray##
+type VkDispatchIndirectCommand =
+     VulkanStruct VkDispatchIndirectCommand' -- ' closing tick for hsc2hs
 
+data VkDispatchIndirectCommand' -- ' closing tick for hsc2hs
+
 instance Eq VkDispatchIndirectCommand where
-        (VkDispatchIndirectCommand## a _) ==
-          x@(VkDispatchIndirectCommand## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDispatchIndirectCommand where
-        (VkDispatchIndirectCommand## a _) `compare`
-          x@(VkDispatchIndirectCommand## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -52,19 +49,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDispatchIndirectCommand where
-        unsafeAddr (VkDispatchIndirectCommand## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDispatchIndirectCommand## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDispatchIndirectCommand## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkDispatchIndirectCommand where
         type StructFields VkDispatchIndirectCommand = '["x", "y", "z"] -- ' closing tick for hsc2hs
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Display.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Display.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Display.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Display.hsc
@@ -8,38 +8,41 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Display
-       (VkDisplayEventInfoEXT(..), VkDisplayModeCreateInfoKHR(..),
-        VkDisplayModeParametersKHR(..), VkDisplayModeProperties2KHR(..),
-        VkDisplayModePropertiesKHR(..), VkDisplayPlaneCapabilities2KHR(..),
-        VkDisplayPlaneCapabilitiesKHR(..), VkDisplayPlaneInfo2KHR(..),
-        VkDisplayPlaneProperties2KHR(..), VkDisplayPlanePropertiesKHR(..),
-        VkDisplayPowerInfoEXT(..), VkDisplayPresentInfoKHR(..),
-        VkDisplayProperties2KHR(..), VkDisplayPropertiesKHR(..),
-        VkDisplaySurfaceCreateInfoKHR(..))
+       (VkDisplayEventInfoEXT, VkDisplayEventInfoEXT', -- ' closing tick for hsc2hs
+        VkDisplayModeCreateInfoKHR, VkDisplayModeCreateInfoKHR', -- ' closing tick for hsc2hs
+        VkDisplayModeParametersKHR, VkDisplayModeParametersKHR', -- ' closing tick for hsc2hs
+        VkDisplayModeProperties2KHR, VkDisplayModeProperties2KHR', -- ' closing tick for hsc2hs
+        VkDisplayModePropertiesKHR, VkDisplayModePropertiesKHR', -- ' closing tick for hsc2hs
+        VkDisplayPlaneCapabilities2KHR, VkDisplayPlaneCapabilities2KHR', -- ' closing tick for hsc2hs
+        VkDisplayPlaneCapabilitiesKHR, VkDisplayPlaneCapabilitiesKHR', -- ' closing tick for hsc2hs
+        VkDisplayPlaneInfo2KHR, VkDisplayPlaneInfo2KHR', -- ' closing tick for hsc2hs
+        VkDisplayPlaneProperties2KHR, VkDisplayPlaneProperties2KHR', -- ' closing tick for hsc2hs
+        VkDisplayPlanePropertiesKHR, VkDisplayPlanePropertiesKHR', -- ' closing tick for hsc2hs
+        VkDisplayPowerInfoEXT, VkDisplayPowerInfoEXT', -- ' closing tick for hsc2hs
+        VkDisplayPresentInfoKHR, VkDisplayPresentInfoKHR', -- ' closing tick for hsc2hs
+        VkDisplayProperties2KHR, VkDisplayProperties2KHR', -- ' closing tick for hsc2hs
+        VkDisplayPropertiesKHR, VkDisplayPropertiesKHR', -- ' closing tick for hsc2hs
+        VkDisplaySurfaceCreateInfoKHR, VkDisplaySurfaceCreateInfoKHR') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes          (VkBool32)
-import           Graphics.Vulkan.Types.Bitmasks           (VkDisplayModeCreateFlagsKHR,
-                                                           VkDisplaySurfaceCreateFlagsKHR)
-import           Graphics.Vulkan.Types.Enum.Display       (VkDisplayEventTypeEXT,
-                                                           VkDisplayPlaneAlphaFlagBitsKHR,
-                                                           VkDisplayPlaneAlphaFlagsKHR,
-                                                           VkDisplayPowerStateEXT)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Enum.Surface       (VkSurfaceTransformFlagBitsKHR,
-                                                           VkSurfaceTransformFlagsKHR)
-import           Graphics.Vulkan.Types.Handles            (VkDisplayKHR,
-                                                           VkDisplayModeKHR)
-import           Graphics.Vulkan.Types.Struct.Extent      (VkExtent2D)
-import           Graphics.Vulkan.Types.Struct.Offset      (VkOffset2D)
-import           Graphics.Vulkan.Types.Struct.Present     (VkPresentInfoKHR)
-import           Graphics.Vulkan.Types.Struct.Rect        (VkRect2D)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes          (VkBool32)
+import Graphics.Vulkan.Types.Bitmasks           (VkDisplayModeCreateFlagsKHR,
+                                                 VkDisplaySurfaceCreateFlagsKHR)
+import Graphics.Vulkan.Types.Enum.Display       (VkDisplayEventTypeEXT,
+                                                 VkDisplayPlaneAlphaFlagBitsKHR,
+                                                 VkDisplayPlaneAlphaFlagsKHR,
+                                                 VkDisplayPowerStateEXT)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Enum.Surface       (VkSurfaceTransformFlagBitsKHR,
+                                                 VkSurfaceTransformFlagsKHR)
+import Graphics.Vulkan.Types.Handles            (VkDisplayKHR, VkDisplayModeKHR)
+import Graphics.Vulkan.Types.Struct.Extent      (VkExtent2D)
+import Graphics.Vulkan.Types.Struct.Offset      (VkOffset2D)
+import Graphics.Vulkan.Types.Struct.Present     (VkPresentInfoKHR)
+import Graphics.Vulkan.Types.Struct.Rect        (VkRect2D)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkDisplayEventInfoEXT {
 --   >     VkStructureType sType;
@@ -48,18 +51,17 @@
 --   > } VkDisplayEventInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayEventInfoEXT VkDisplayEventInfoEXT registry at www.khronos.org>
-data VkDisplayEventInfoEXT = VkDisplayEventInfoEXT## Addr##
-                                                    ByteArray##
+type VkDisplayEventInfoEXT = VulkanStruct VkDisplayEventInfoEXT' -- ' closing tick for hsc2hs
 
+data VkDisplayEventInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkDisplayEventInfoEXT where
-        (VkDisplayEventInfoEXT## a _) == x@(VkDisplayEventInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDisplayEventInfoEXT where
-        (VkDisplayEventInfoEXT## a _) `compare`
-          x@(VkDisplayEventInfoEXT## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -77,18 +79,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDisplayEventInfoEXT where
-        unsafeAddr (VkDisplayEventInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayEventInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayEventInfoEXT## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDisplayEventInfoEXT where
         type StructFields VkDisplayEventInfoEXT =
              '["sType", "pNext", "displayEvent"] -- ' closing tick for hsc2hs
@@ -211,19 +201,18 @@
 --   > } VkDisplayModeCreateInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayModeCreateInfoKHR VkDisplayModeCreateInfoKHR registry at www.khronos.org>
-data VkDisplayModeCreateInfoKHR = VkDisplayModeCreateInfoKHR## Addr##
-                                                              ByteArray##
+type VkDisplayModeCreateInfoKHR =
+     VulkanStruct VkDisplayModeCreateInfoKHR' -- ' closing tick for hsc2hs
 
+data VkDisplayModeCreateInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkDisplayModeCreateInfoKHR where
-        (VkDisplayModeCreateInfoKHR## a _) ==
-          x@(VkDisplayModeCreateInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDisplayModeCreateInfoKHR where
-        (VkDisplayModeCreateInfoKHR## a _) `compare`
-          x@(VkDisplayModeCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -241,20 +230,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDisplayModeCreateInfoKHR where
-        unsafeAddr (VkDisplayModeCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayModeCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayModeCreateInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDisplayModeCreateInfoKHR where
         type StructFields VkDisplayModeCreateInfoKHR =
              '["sType", "pNext", "flags", "parameters"] -- ' closing tick for hsc2hs
@@ -413,19 +388,18 @@
 --   > } VkDisplayModeParametersKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayModeParametersKHR VkDisplayModeParametersKHR registry at www.khronos.org>
-data VkDisplayModeParametersKHR = VkDisplayModeParametersKHR## Addr##
-                                                              ByteArray##
+type VkDisplayModeParametersKHR =
+     VulkanStruct VkDisplayModeParametersKHR' -- ' closing tick for hsc2hs
 
+data VkDisplayModeParametersKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkDisplayModeParametersKHR where
-        (VkDisplayModeParametersKHR## a _) ==
-          x@(VkDisplayModeParametersKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDisplayModeParametersKHR where
-        (VkDisplayModeParametersKHR## a _) `compare`
-          x@(VkDisplayModeParametersKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -443,20 +417,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDisplayModeParametersKHR where
-        unsafeAddr (VkDisplayModeParametersKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayModeParametersKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayModeParametersKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDisplayModeParametersKHR where
         type StructFields VkDisplayModeParametersKHR =
              '["visibleRegion", "refreshRate"] -- ' closing tick for hsc2hs
@@ -548,19 +508,18 @@
 --   > } VkDisplayModeProperties2KHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayModeProperties2KHR VkDisplayModeProperties2KHR registry at www.khronos.org>
-data VkDisplayModeProperties2KHR = VkDisplayModeProperties2KHR## Addr##
-                                                                ByteArray##
+type VkDisplayModeProperties2KHR =
+     VulkanStruct VkDisplayModeProperties2KHR' -- ' closing tick for hsc2hs
 
+data VkDisplayModeProperties2KHR' -- ' closing tick for hsc2hs
+
 instance Eq VkDisplayModeProperties2KHR where
-        (VkDisplayModeProperties2KHR## a _) ==
-          x@(VkDisplayModeProperties2KHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDisplayModeProperties2KHR where
-        (VkDisplayModeProperties2KHR## a _) `compare`
-          x@(VkDisplayModeProperties2KHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -578,20 +537,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDisplayModeProperties2KHR where
-        unsafeAddr (VkDisplayModeProperties2KHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayModeProperties2KHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayModeProperties2KHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDisplayModeProperties2KHR where
         type StructFields VkDisplayModeProperties2KHR =
              '["sType", "pNext", "displayModeProperties"] -- ' closing tick for hsc2hs
@@ -723,19 +668,18 @@
 --   > } VkDisplayModePropertiesKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayModePropertiesKHR VkDisplayModePropertiesKHR registry at www.khronos.org>
-data VkDisplayModePropertiesKHR = VkDisplayModePropertiesKHR## Addr##
-                                                              ByteArray##
+type VkDisplayModePropertiesKHR =
+     VulkanStruct VkDisplayModePropertiesKHR' -- ' closing tick for hsc2hs
 
+data VkDisplayModePropertiesKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkDisplayModePropertiesKHR where
-        (VkDisplayModePropertiesKHR## a _) ==
-          x@(VkDisplayModePropertiesKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDisplayModePropertiesKHR where
-        (VkDisplayModePropertiesKHR## a _) `compare`
-          x@(VkDisplayModePropertiesKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -753,20 +697,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDisplayModePropertiesKHR where
-        unsafeAddr (VkDisplayModePropertiesKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayModePropertiesKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayModePropertiesKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDisplayModePropertiesKHR where
         type StructFields VkDisplayModePropertiesKHR =
              '["displayMode", "parameters"] -- ' closing tick for hsc2hs
@@ -857,19 +787,18 @@
 --   > } VkDisplayPlaneCapabilities2KHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPlaneCapabilities2KHR VkDisplayPlaneCapabilities2KHR registry at www.khronos.org>
-data VkDisplayPlaneCapabilities2KHR = VkDisplayPlaneCapabilities2KHR## Addr##
-                                                                      ByteArray##
+type VkDisplayPlaneCapabilities2KHR =
+     VulkanStruct VkDisplayPlaneCapabilities2KHR' -- ' closing tick for hsc2hs
 
+data VkDisplayPlaneCapabilities2KHR' -- ' closing tick for hsc2hs
+
 instance Eq VkDisplayPlaneCapabilities2KHR where
-        (VkDisplayPlaneCapabilities2KHR## a _) ==
-          x@(VkDisplayPlaneCapabilities2KHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDisplayPlaneCapabilities2KHR where
-        (VkDisplayPlaneCapabilities2KHR## a _) `compare`
-          x@(VkDisplayPlaneCapabilities2KHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -888,20 +817,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDisplayPlaneCapabilities2KHR where
-        unsafeAddr (VkDisplayPlaneCapabilities2KHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayPlaneCapabilities2KHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayPlaneCapabilities2KHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDisplayPlaneCapabilities2KHR where
         type StructFields VkDisplayPlaneCapabilities2KHR =
              '["sType", "pNext", "capabilities"] -- ' closing tick for hsc2hs
@@ -1034,19 +949,18 @@
 --   > } VkDisplayPlaneCapabilitiesKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPlaneCapabilitiesKHR VkDisplayPlaneCapabilitiesKHR registry at www.khronos.org>
-data VkDisplayPlaneCapabilitiesKHR = VkDisplayPlaneCapabilitiesKHR## Addr##
-                                                                    ByteArray##
+type VkDisplayPlaneCapabilitiesKHR =
+     VulkanStruct VkDisplayPlaneCapabilitiesKHR' -- ' closing tick for hsc2hs
 
+data VkDisplayPlaneCapabilitiesKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkDisplayPlaneCapabilitiesKHR where
-        (VkDisplayPlaneCapabilitiesKHR## a _) ==
-          x@(VkDisplayPlaneCapabilitiesKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDisplayPlaneCapabilitiesKHR where
-        (VkDisplayPlaneCapabilitiesKHR## a _) `compare`
-          x@(VkDisplayPlaneCapabilitiesKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1065,20 +979,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDisplayPlaneCapabilitiesKHR where
-        unsafeAddr (VkDisplayPlaneCapabilitiesKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayPlaneCapabilitiesKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayPlaneCapabilitiesKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDisplayPlaneCapabilitiesKHR where
         type StructFields VkDisplayPlaneCapabilitiesKHR =
              '["supportedAlpha", "minSrcPosition", "maxSrcPosition", -- ' closing tick for hsc2hs
@@ -1443,18 +1343,17 @@
 --   > } VkDisplayPlaneInfo2KHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPlaneInfo2KHR VkDisplayPlaneInfo2KHR registry at www.khronos.org>
-data VkDisplayPlaneInfo2KHR = VkDisplayPlaneInfo2KHR## Addr##
-                                                      ByteArray##
+type VkDisplayPlaneInfo2KHR = VulkanStruct VkDisplayPlaneInfo2KHR' -- ' closing tick for hsc2hs
 
+data VkDisplayPlaneInfo2KHR' -- ' closing tick for hsc2hs
+
 instance Eq VkDisplayPlaneInfo2KHR where
-        (VkDisplayPlaneInfo2KHR## a _) == x@(VkDisplayPlaneInfo2KHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDisplayPlaneInfo2KHR where
-        (VkDisplayPlaneInfo2KHR## a _) `compare`
-          x@(VkDisplayPlaneInfo2KHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1472,18 +1371,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDisplayPlaneInfo2KHR where
-        unsafeAddr (VkDisplayPlaneInfo2KHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayPlaneInfo2KHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayPlaneInfo2KHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDisplayPlaneInfo2KHR where
         type StructFields VkDisplayPlaneInfo2KHR =
              '["sType", "pNext", "mode", "planeIndex"] -- ' closing tick for hsc2hs
@@ -1638,19 +1525,18 @@
 --   > } VkDisplayPlaneProperties2KHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPlaneProperties2KHR VkDisplayPlaneProperties2KHR registry at www.khronos.org>
-data VkDisplayPlaneProperties2KHR = VkDisplayPlaneProperties2KHR## Addr##
-                                                                  ByteArray##
+type VkDisplayPlaneProperties2KHR =
+     VulkanStruct VkDisplayPlaneProperties2KHR' -- ' closing tick for hsc2hs
 
+data VkDisplayPlaneProperties2KHR' -- ' closing tick for hsc2hs
+
 instance Eq VkDisplayPlaneProperties2KHR where
-        (VkDisplayPlaneProperties2KHR## a _) ==
-          x@(VkDisplayPlaneProperties2KHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDisplayPlaneProperties2KHR where
-        (VkDisplayPlaneProperties2KHR## a _) `compare`
-          x@(VkDisplayPlaneProperties2KHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1669,20 +1555,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDisplayPlaneProperties2KHR where
-        unsafeAddr (VkDisplayPlaneProperties2KHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayPlaneProperties2KHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayPlaneProperties2KHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDisplayPlaneProperties2KHR where
         type StructFields VkDisplayPlaneProperties2KHR =
              '["sType", "pNext", "displayPlaneProperties"] -- ' closing tick for hsc2hs
@@ -1816,19 +1688,18 @@
 --   > } VkDisplayPlanePropertiesKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPlanePropertiesKHR VkDisplayPlanePropertiesKHR registry at www.khronos.org>
-data VkDisplayPlanePropertiesKHR = VkDisplayPlanePropertiesKHR## Addr##
-                                                                ByteArray##
+type VkDisplayPlanePropertiesKHR =
+     VulkanStruct VkDisplayPlanePropertiesKHR' -- ' closing tick for hsc2hs
 
+data VkDisplayPlanePropertiesKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkDisplayPlanePropertiesKHR where
-        (VkDisplayPlanePropertiesKHR## a _) ==
-          x@(VkDisplayPlanePropertiesKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDisplayPlanePropertiesKHR where
-        (VkDisplayPlanePropertiesKHR## a _) `compare`
-          x@(VkDisplayPlanePropertiesKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1846,20 +1717,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDisplayPlanePropertiesKHR where
-        unsafeAddr (VkDisplayPlanePropertiesKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayPlanePropertiesKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayPlanePropertiesKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDisplayPlanePropertiesKHR where
         type StructFields VkDisplayPlanePropertiesKHR =
              '["currentDisplay", "currentStackIndex"] -- ' closing tick for hsc2hs
@@ -1953,18 +1810,17 @@
 --   > } VkDisplayPowerInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPowerInfoEXT VkDisplayPowerInfoEXT registry at www.khronos.org>
-data VkDisplayPowerInfoEXT = VkDisplayPowerInfoEXT## Addr##
-                                                    ByteArray##
+type VkDisplayPowerInfoEXT = VulkanStruct VkDisplayPowerInfoEXT' -- ' closing tick for hsc2hs
 
+data VkDisplayPowerInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkDisplayPowerInfoEXT where
-        (VkDisplayPowerInfoEXT## a _) == x@(VkDisplayPowerInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDisplayPowerInfoEXT where
-        (VkDisplayPowerInfoEXT## a _) `compare`
-          x@(VkDisplayPowerInfoEXT## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1982,18 +1838,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDisplayPowerInfoEXT where
-        unsafeAddr (VkDisplayPowerInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayPowerInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayPowerInfoEXT## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDisplayPowerInfoEXT where
         type StructFields VkDisplayPowerInfoEXT =
              '["sType", "pNext", "powerState"] -- ' closing tick for hsc2hs
@@ -2117,18 +1961,18 @@
 --   > } VkDisplayPresentInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPresentInfoKHR VkDisplayPresentInfoKHR registry at www.khronos.org>
-data VkDisplayPresentInfoKHR = VkDisplayPresentInfoKHR## Addr##
-                                                        ByteArray##
+type VkDisplayPresentInfoKHR =
+     VulkanStruct VkDisplayPresentInfoKHR' -- ' closing tick for hsc2hs
 
+data VkDisplayPresentInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkDisplayPresentInfoKHR where
-        (VkDisplayPresentInfoKHR## a _) == x@(VkDisplayPresentInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDisplayPresentInfoKHR where
-        (VkDisplayPresentInfoKHR## a _) `compare`
-          x@(VkDisplayPresentInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2146,18 +1990,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDisplayPresentInfoKHR where
-        unsafeAddr (VkDisplayPresentInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayPresentInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayPresentInfoKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDisplayPresentInfoKHR where
         type StructFields VkDisplayPresentInfoKHR =
              '["sType", "pNext", "srcRect", "dstRect", "persistent"] -- ' closing tick for hsc2hs
@@ -2348,18 +2180,18 @@
 --   > } VkDisplayProperties2KHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayProperties2KHR VkDisplayProperties2KHR registry at www.khronos.org>
-data VkDisplayProperties2KHR = VkDisplayProperties2KHR## Addr##
-                                                        ByteArray##
+type VkDisplayProperties2KHR =
+     VulkanStruct VkDisplayProperties2KHR' -- ' closing tick for hsc2hs
 
+data VkDisplayProperties2KHR' -- ' closing tick for hsc2hs
+
 instance Eq VkDisplayProperties2KHR where
-        (VkDisplayProperties2KHR## a _) == x@(VkDisplayProperties2KHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDisplayProperties2KHR where
-        (VkDisplayProperties2KHR## a _) `compare`
-          x@(VkDisplayProperties2KHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2377,18 +2209,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDisplayProperties2KHR where
-        unsafeAddr (VkDisplayProperties2KHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayProperties2KHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayProperties2KHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDisplayProperties2KHR where
         type StructFields VkDisplayProperties2KHR =
              '["sType", "pNext", "displayProperties"] -- ' closing tick for hsc2hs
@@ -2516,18 +2336,17 @@
 --   > } VkDisplayPropertiesKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPropertiesKHR VkDisplayPropertiesKHR registry at www.khronos.org>
-data VkDisplayPropertiesKHR = VkDisplayPropertiesKHR## Addr##
-                                                      ByteArray##
+type VkDisplayPropertiesKHR = VulkanStruct VkDisplayPropertiesKHR' -- ' closing tick for hsc2hs
 
+data VkDisplayPropertiesKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkDisplayPropertiesKHR where
-        (VkDisplayPropertiesKHR## a _) == x@(VkDisplayPropertiesKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDisplayPropertiesKHR where
-        (VkDisplayPropertiesKHR## a _) `compare`
-          x@(VkDisplayPropertiesKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2545,18 +2364,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDisplayPropertiesKHR where
-        unsafeAddr (VkDisplayPropertiesKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayPropertiesKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayPropertiesKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDisplayPropertiesKHR where
         type StructFields VkDisplayPropertiesKHR =
              '["display", "displayName", "physicalDimensions", -- ' closing tick for hsc2hs
@@ -2843,19 +2650,18 @@
 --   > } VkDisplaySurfaceCreateInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplaySurfaceCreateInfoKHR VkDisplaySurfaceCreateInfoKHR registry at www.khronos.org>
-data VkDisplaySurfaceCreateInfoKHR = VkDisplaySurfaceCreateInfoKHR## Addr##
-                                                                    ByteArray##
+type VkDisplaySurfaceCreateInfoKHR =
+     VulkanStruct VkDisplaySurfaceCreateInfoKHR' -- ' closing tick for hsc2hs
 
+data VkDisplaySurfaceCreateInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkDisplaySurfaceCreateInfoKHR where
-        (VkDisplaySurfaceCreateInfoKHR## a _) ==
-          x@(VkDisplaySurfaceCreateInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDisplaySurfaceCreateInfoKHR where
-        (VkDisplaySurfaceCreateInfoKHR## a _) `compare`
-          x@(VkDisplaySurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2873,20 +2679,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDisplaySurfaceCreateInfoKHR where
-        unsafeAddr (VkDisplaySurfaceCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplaySurfaceCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplaySurfaceCreateInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkDisplaySurfaceCreateInfoKHR where
         type StructFields VkDisplaySurfaceCreateInfoKHR =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/DrawInd.hsc b/src-gen/Graphics/Vulkan/Types/Struct/DrawInd.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/DrawInd.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/DrawInd.hsc
@@ -8,14 +8,13 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.DrawInd
-       (VkDrawIndexedIndirectCommand(..), VkDrawIndirectCommand(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Base                         (Addr##, ByteArray##,
-                                                   byteArrayContents##,
-                                                   plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+       (VkDrawIndexedIndirectCommand, VkDrawIndexedIndirectCommand', -- ' closing tick for hsc2hs
+        VkDrawIndirectCommand, VkDrawIndirectCommand') -- ' closing tick for hsc2hs
+       where
+import Foreign.Storable                 (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import System.IO.Unsafe                 (unsafeDupablePerformIO)
 
 -- | > typedef struct VkDrawIndexedIndirectCommand {
 --   >     uint32_t               indexCount;
@@ -26,19 +25,18 @@
 --   > } VkDrawIndexedIndirectCommand;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDrawIndexedIndirectCommand VkDrawIndexedIndirectCommand registry at www.khronos.org>
-data VkDrawIndexedIndirectCommand = VkDrawIndexedIndirectCommand## Addr##
-                                                                  ByteArray##
+type VkDrawIndexedIndirectCommand =
+     VulkanStruct VkDrawIndexedIndirectCommand' -- ' closing tick for hsc2hs
 
+data VkDrawIndexedIndirectCommand' -- ' closing tick for hsc2hs
+
 instance Eq VkDrawIndexedIndirectCommand where
-        (VkDrawIndexedIndirectCommand## a _) ==
-          x@(VkDrawIndexedIndirectCommand## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDrawIndexedIndirectCommand where
-        (VkDrawIndexedIndirectCommand## a _) `compare`
-          x@(VkDrawIndexedIndirectCommand## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -57,20 +55,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkDrawIndexedIndirectCommand where
-        unsafeAddr (VkDrawIndexedIndirectCommand## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDrawIndexedIndirectCommand## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDrawIndexedIndirectCommand##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkDrawIndexedIndirectCommand where
         type StructFields VkDrawIndexedIndirectCommand =
              '["indexCount", "instanceCount", "firstIndex", "vertexOffset", -- ' closing tick for hsc2hs
@@ -277,18 +261,17 @@
 --   > } VkDrawIndirectCommand;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDrawIndirectCommand VkDrawIndirectCommand registry at www.khronos.org>
-data VkDrawIndirectCommand = VkDrawIndirectCommand## Addr##
-                                                    ByteArray##
+type VkDrawIndirectCommand = VulkanStruct VkDrawIndirectCommand' -- ' closing tick for hsc2hs
 
+data VkDrawIndirectCommand' -- ' closing tick for hsc2hs
+
 instance Eq VkDrawIndirectCommand where
-        (VkDrawIndirectCommand## a _) == x@(VkDrawIndirectCommand## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkDrawIndirectCommand where
-        (VkDrawIndirectCommand## a _) `compare`
-          x@(VkDrawIndirectCommand## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -305,18 +288,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDrawIndirectCommand where
-        unsafeAddr (VkDrawIndirectCommand## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDrawIndirectCommand## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDrawIndirectCommand## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkDrawIndirectCommand where
         type StructFields VkDrawIndirectCommand =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/EventCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/EventCreateInfo.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/EventCreateInfo.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/EventCreateInfo.hsc
@@ -8,16 +8,13 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.EventCreateInfo
-       (VkEventCreateInfo(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks           (VkEventCreateFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkEventCreateInfo, VkEventCreateInfo') where -- ' closing tick for hsc2hs
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Bitmasks           (VkEventCreateFlags)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkEventCreateInfo {
 --   >     VkStructureType sType;
@@ -26,17 +23,17 @@
 --   > } VkEventCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkEventCreateInfo VkEventCreateInfo registry at www.khronos.org>
-data VkEventCreateInfo = VkEventCreateInfo## Addr## ByteArray##
+type VkEventCreateInfo = VulkanStruct VkEventCreateInfo' -- ' closing tick for hsc2hs
 
+data VkEventCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkEventCreateInfo where
-        (VkEventCreateInfo## a _) == x@(VkEventCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkEventCreateInfo where
-        (VkEventCreateInfo## a _) `compare` x@(VkEventCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -53,18 +50,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkEventCreateInfo where
-        unsafeAddr (VkEventCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkEventCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkEventCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkEventCreateInfo where
         type StructFields VkEventCreateInfo = '["sType", "pNext", "flags"] -- ' closing tick for hsc2hs
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Export.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Export.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Export.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Export.hsc
@@ -8,26 +8,25 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Export
-       (VkExportFenceCreateInfo(..), VkExportFenceCreateInfoKHR,
-        VkExportMemoryAllocateInfo(..), VkExportMemoryAllocateInfoKHR,
-        VkExportMemoryAllocateInfoNV(..), VkExportSemaphoreCreateInfo(..),
+       (VkExportFenceCreateInfo, VkExportFenceCreateInfo', -- ' closing tick for hsc2hs
+        VkExportFenceCreateInfoKHR, VkExportMemoryAllocateInfo,
+        VkExportMemoryAllocateInfo', VkExportMemoryAllocateInfoKHR, -- ' closing tick for hsc2hs
+        VkExportMemoryAllocateInfoNV, VkExportMemoryAllocateInfoNV', -- ' closing tick for hsc2hs
+        VkExportSemaphoreCreateInfo, VkExportSemaphoreCreateInfo', -- ' closing tick for hsc2hs
         VkExportSemaphoreCreateInfoKHR)
        where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.External      (VkExternalFenceHandleTypeFlags,
-                                                           VkExternalMemoryHandleTypeFlags,
-                                                           VkExternalMemoryHandleTypeFlagsNV,
-                                                           VkExternalSemaphoreHandleTypeFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.Fence       (VkFenceCreateInfo)
-import           Graphics.Vulkan.Types.Struct.Memory      (VkMemoryAllocateInfo)
-import           Graphics.Vulkan.Types.Struct.Semaphore   (VkSemaphoreCreateInfo)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.External      (VkExternalFenceHandleTypeFlags,
+                                                 VkExternalMemoryHandleTypeFlags,
+                                                 VkExternalMemoryHandleTypeFlagsNV,
+                                                 VkExternalSemaphoreHandleTypeFlags)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Struct.Fence       (VkFenceCreateInfo)
+import Graphics.Vulkan.Types.Struct.Memory      (VkMemoryAllocateInfo)
+import Graphics.Vulkan.Types.Struct.Semaphore   (VkSemaphoreCreateInfo)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkExportFenceCreateInfo {
 --   >     VkStructureType sType;
@@ -36,18 +35,18 @@
 --   > } VkExportFenceCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExportFenceCreateInfo VkExportFenceCreateInfo registry at www.khronos.org>
-data VkExportFenceCreateInfo = VkExportFenceCreateInfo## Addr##
-                                                        ByteArray##
+type VkExportFenceCreateInfo =
+     VulkanStruct VkExportFenceCreateInfo' -- ' closing tick for hsc2hs
 
+data VkExportFenceCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkExportFenceCreateInfo where
-        (VkExportFenceCreateInfo## a _) == x@(VkExportFenceCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExportFenceCreateInfo where
-        (VkExportFenceCreateInfo## a _) `compare`
-          x@(VkExportFenceCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -65,18 +64,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkExportFenceCreateInfo where
-        unsafeAddr (VkExportFenceCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExportFenceCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExportFenceCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkExportFenceCreateInfo where
         type StructFields VkExportFenceCreateInfo =
              '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
@@ -201,19 +188,18 @@
 --   > } VkExportMemoryAllocateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExportMemoryAllocateInfo VkExportMemoryAllocateInfo registry at www.khronos.org>
-data VkExportMemoryAllocateInfo = VkExportMemoryAllocateInfo## Addr##
-                                                              ByteArray##
+type VkExportMemoryAllocateInfo =
+     VulkanStruct VkExportMemoryAllocateInfo' -- ' closing tick for hsc2hs
 
+data VkExportMemoryAllocateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkExportMemoryAllocateInfo where
-        (VkExportMemoryAllocateInfo## a _) ==
-          x@(VkExportMemoryAllocateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExportMemoryAllocateInfo where
-        (VkExportMemoryAllocateInfo## a _) `compare`
-          x@(VkExportMemoryAllocateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -231,20 +217,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkExportMemoryAllocateInfo where
-        unsafeAddr (VkExportMemoryAllocateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExportMemoryAllocateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExportMemoryAllocateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkExportMemoryAllocateInfo where
         type StructFields VkExportMemoryAllocateInfo =
              '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
@@ -372,19 +344,18 @@
 --   > } VkExportMemoryAllocateInfoNV;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExportMemoryAllocateInfoNV VkExportMemoryAllocateInfoNV registry at www.khronos.org>
-data VkExportMemoryAllocateInfoNV = VkExportMemoryAllocateInfoNV## Addr##
-                                                                  ByteArray##
+type VkExportMemoryAllocateInfoNV =
+     VulkanStruct VkExportMemoryAllocateInfoNV' -- ' closing tick for hsc2hs
 
+data VkExportMemoryAllocateInfoNV' -- ' closing tick for hsc2hs
+
 instance Eq VkExportMemoryAllocateInfoNV where
-        (VkExportMemoryAllocateInfoNV## a _) ==
-          x@(VkExportMemoryAllocateInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExportMemoryAllocateInfoNV where
-        (VkExportMemoryAllocateInfoNV## a _) `compare`
-          x@(VkExportMemoryAllocateInfoNV## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -403,20 +374,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkExportMemoryAllocateInfoNV where
-        unsafeAddr (VkExportMemoryAllocateInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExportMemoryAllocateInfoNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExportMemoryAllocateInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkExportMemoryAllocateInfoNV where
         type StructFields VkExportMemoryAllocateInfoNV =
              '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
@@ -544,19 +501,18 @@
 --   > } VkExportSemaphoreCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfo registry at www.khronos.org>
-data VkExportSemaphoreCreateInfo = VkExportSemaphoreCreateInfo## Addr##
-                                                                ByteArray##
+type VkExportSemaphoreCreateInfo =
+     VulkanStruct VkExportSemaphoreCreateInfo' -- ' closing tick for hsc2hs
 
+data VkExportSemaphoreCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkExportSemaphoreCreateInfo where
-        (VkExportSemaphoreCreateInfo## a _) ==
-          x@(VkExportSemaphoreCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExportSemaphoreCreateInfo where
-        (VkExportSemaphoreCreateInfo## a _) `compare`
-          x@(VkExportSemaphoreCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -573,20 +529,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExportSemaphoreCreateInfo where
-        unsafeAddr (VkExportSemaphoreCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExportSemaphoreCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExportSemaphoreCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkExportSemaphoreCreateInfo where
         type StructFields VkExportSemaphoreCreateInfo =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/ExtensionProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/ExtensionProperties.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/ExtensionProperties.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/ExtensionProperties.hsc
@@ -12,16 +12,13 @@
 {-# LANGUAGE TypeFamilies          #-}
 {-# LANGUAGE UndecidableInstances  #-}
 module Graphics.Vulkan.Types.Struct.ExtensionProperties
-       (VkExtensionProperties(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Base                         (Addr##, ByteArray##, Proxy##,
-                                                   byteArrayContents##,
-                                                   plusAddr##, proxy##)
-import           GHC.TypeLits                     (KnownNat, natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Constants        (VK_MAX_EXTENSION_NAME_SIZE, pattern VK_MAX_EXTENSION_NAME_SIZE)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+       (VkExtensionProperties, VkExtensionProperties') where -- ' closing tick for hsc2hs
+import Foreign.Storable                 (Storable (..))
+import Graphics.Vulkan.Constants        (VK_MAX_EXTENSION_NAME_SIZE,
+                                         pattern VK_MAX_EXTENSION_NAME_SIZE)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import System.IO.Unsafe                 (unsafeDupablePerformIO)
 
 -- | > typedef struct VkExtensionProperties {
 --   >     char            extensionName[VK_MAX_EXTENSION_NAME_SIZE];
@@ -29,18 +26,17 @@
 --   > } VkExtensionProperties;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExtensionProperties VkExtensionProperties registry at www.khronos.org>
-data VkExtensionProperties = VkExtensionProperties## Addr##
-                                                    ByteArray##
+type VkExtensionProperties = VulkanStruct VkExtensionProperties' -- ' closing tick for hsc2hs
 
+data VkExtensionProperties' -- ' closing tick for hsc2hs
+
 instance Eq VkExtensionProperties where
-        (VkExtensionProperties## a _) == x@(VkExtensionProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExtensionProperties where
-        (VkExtensionProperties## a _) `compare`
-          x@(VkExtensionProperties## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -57,18 +53,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExtensionProperties where
-        unsafeAddr (VkExtensionProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExtensionProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExtensionProperties## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkExtensionProperties where
         type StructFields VkExtensionProperties =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Extent.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Extent.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Extent.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Extent.hsc
@@ -8,14 +8,11 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Extent
-       (VkExtent2D(..), VkExtent3D(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Base                         (Addr##, ByteArray##,
-                                                   byteArrayContents##,
-                                                   plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+       (VkExtent2D, VkExtent2D', VkExtent3D, VkExtent3D') where
+import Foreign.Storable                 (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import System.IO.Unsafe                 (unsafeDupablePerformIO)
 
 -- | > typedef struct VkExtent2D {
 --   >     uint32_t        width;
@@ -23,17 +20,17 @@
 --   > } VkExtent2D;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExtent2D VkExtent2D registry at www.khronos.org>
-data VkExtent2D = VkExtent2D## Addr## ByteArray##
+type VkExtent2D = VulkanStruct VkExtent2D' -- ' closing tick for hsc2hs
 
+data VkExtent2D' -- ' closing tick for hsc2hs
+
 instance Eq VkExtent2D where
-        (VkExtent2D## a _) == x@(VkExtent2D## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExtent2D where
-        (VkExtent2D## a _) `compare` x@(VkExtent2D## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -51,18 +48,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkExtent2D where
-        unsafeAddr (VkExtent2D## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExtent2D## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExtent2D## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkExtent2D where
         type StructFields VkExtent2D = '["width", "height"] -- ' closing tick for hsc2hs
         type CUnionType VkExtent2D = 'False -- ' closing tick for hsc2hs
@@ -141,17 +126,17 @@
 --   > } VkExtent3D;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExtent3D VkExtent3D registry at www.khronos.org>
-data VkExtent3D = VkExtent3D## Addr## ByteArray##
+type VkExtent3D = VulkanStruct VkExtent3D' -- ' closing tick for hsc2hs
 
+data VkExtent3D' -- ' closing tick for hsc2hs
+
 instance Eq VkExtent3D where
-        (VkExtent3D## a _) == x@(VkExtent3D## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExtent3D where
-        (VkExtent3D## a _) `compare` x@(VkExtent3D## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -168,18 +153,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExtent3D where
-        unsafeAddr (VkExtent3D## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExtent3D## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExtent3D## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkExtent3D where
         type StructFields VkExtent3D = '["width", "height", "depth"] -- ' closing tick for hsc2hs
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/External.hsc b/src-gen/Graphics/Vulkan/Types/Struct/External.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/External.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/External.hsc
@@ -8,39 +8,41 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.External
-       (VkExternalBufferProperties(..), VkExternalBufferPropertiesKHR,
-        VkExternalFenceProperties(..), VkExternalFencePropertiesKHR,
-        VkExternalImageFormatProperties(..),
+       (VkExternalBufferProperties, VkExternalBufferProperties', -- ' closing tick for hsc2hs
+        VkExternalBufferPropertiesKHR, VkExternalFenceProperties,
+        VkExternalFenceProperties', VkExternalFencePropertiesKHR, -- ' closing tick for hsc2hs
+        VkExternalImageFormatProperties, VkExternalImageFormatProperties', -- ' closing tick for hsc2hs
         VkExternalImageFormatPropertiesKHR,
-        VkExternalImageFormatPropertiesNV(..),
-        VkExternalMemoryBufferCreateInfo(..),
+        VkExternalImageFormatPropertiesNV,
+        VkExternalImageFormatPropertiesNV', -- ' closing tick for hsc2hs
+        VkExternalMemoryBufferCreateInfo,
+        VkExternalMemoryBufferCreateInfo', -- ' closing tick for hsc2hs
         VkExternalMemoryBufferCreateInfoKHR,
-        VkExternalMemoryImageCreateInfo(..),
+        VkExternalMemoryImageCreateInfo, VkExternalMemoryImageCreateInfo', -- ' closing tick for hsc2hs
         VkExternalMemoryImageCreateInfoKHR,
-        VkExternalMemoryImageCreateInfoNV(..),
-        VkExternalMemoryProperties(..), VkExternalMemoryPropertiesKHR,
-        VkExternalSemaphoreProperties(..),
+        VkExternalMemoryImageCreateInfoNV,
+        VkExternalMemoryImageCreateInfoNV', VkExternalMemoryProperties, -- ' closing tick for hsc2hs
+        VkExternalMemoryProperties', VkExternalMemoryPropertiesKHR, -- ' closing tick for hsc2hs
+        VkExternalSemaphoreProperties, VkExternalSemaphoreProperties', -- ' closing tick for hsc2hs
         VkExternalSemaphorePropertiesKHR)
        where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.External      (VkExternalFenceFeatureFlags,
-                                                           VkExternalFenceHandleTypeFlags,
-                                                           VkExternalMemoryFeatureFlags,
-                                                           VkExternalMemoryFeatureFlagsNV,
-                                                           VkExternalMemoryHandleTypeFlags,
-                                                           VkExternalMemoryHandleTypeFlagsNV,
-                                                           VkExternalSemaphoreFeatureFlags,
-                                                           VkExternalSemaphoreHandleTypeFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.Buffer      (VkBufferCreateInfo)
-import           Graphics.Vulkan.Types.Struct.Image       (VkImageCreateInfo, VkImageFormatProperties,
-                                                           VkImageFormatProperties2)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.External      (VkExternalFenceFeatureFlags,
+                                                 VkExternalFenceHandleTypeFlags,
+                                                 VkExternalMemoryFeatureFlags,
+                                                 VkExternalMemoryFeatureFlagsNV,
+                                                 VkExternalMemoryHandleTypeFlags,
+                                                 VkExternalMemoryHandleTypeFlagsNV,
+                                                 VkExternalSemaphoreFeatureFlags,
+                                                 VkExternalSemaphoreHandleTypeFlags)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Struct.Buffer      (VkBufferCreateInfo)
+import Graphics.Vulkan.Types.Struct.Image       (VkImageCreateInfo,
+                                                 VkImageFormatProperties,
+                                                 VkImageFormatProperties2)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkExternalBufferProperties {
 --   >     VkStructureType sType;
@@ -49,19 +51,18 @@
 --   > } VkExternalBufferProperties;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalBufferProperties VkExternalBufferProperties registry at www.khronos.org>
-data VkExternalBufferProperties = VkExternalBufferProperties## Addr##
-                                                              ByteArray##
+type VkExternalBufferProperties =
+     VulkanStruct VkExternalBufferProperties' -- ' closing tick for hsc2hs
 
+data VkExternalBufferProperties' -- ' closing tick for hsc2hs
+
 instance Eq VkExternalBufferProperties where
-        (VkExternalBufferProperties## a _) ==
-          x@(VkExternalBufferProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExternalBufferProperties where
-        (VkExternalBufferProperties## a _) `compare`
-          x@(VkExternalBufferProperties## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -79,20 +80,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkExternalBufferProperties where
-        unsafeAddr (VkExternalBufferProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExternalBufferProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExternalBufferProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkExternalBufferProperties where
         type StructFields VkExternalBufferProperties =
              '["sType", "pNext", "externalMemoryProperties"] -- ' closing tick for hsc2hs
@@ -231,18 +218,18 @@
 --   > } VkExternalFenceProperties;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalFenceProperties VkExternalFenceProperties registry at www.khronos.org>
-data VkExternalFenceProperties = VkExternalFenceProperties## Addr##
-                                                            ByteArray##
+type VkExternalFenceProperties =
+     VulkanStruct VkExternalFenceProperties' -- ' closing tick for hsc2hs
 
+data VkExternalFenceProperties' -- ' closing tick for hsc2hs
+
 instance Eq VkExternalFenceProperties where
-        (VkExternalFenceProperties## a _) ==
-          x@(VkExternalFenceProperties## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExternalFenceProperties where
-        (VkExternalFenceProperties## a _) `compare`
-          x@(VkExternalFenceProperties## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -260,19 +247,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkExternalFenceProperties where
-        unsafeAddr (VkExternalFenceProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExternalFenceProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExternalFenceProperties## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkExternalFenceProperties where
         type StructFields VkExternalFenceProperties =
              '["sType", "pNext", "exportFromImportedHandleTypes", -- ' closing tick for hsc2hs
@@ -497,19 +471,18 @@
 --   > } VkExternalImageFormatProperties;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalImageFormatProperties VkExternalImageFormatProperties registry at www.khronos.org>
-data VkExternalImageFormatProperties = VkExternalImageFormatProperties## Addr##
-                                                                        ByteArray##
+type VkExternalImageFormatProperties =
+     VulkanStruct VkExternalImageFormatProperties' -- ' closing tick for hsc2hs
 
+data VkExternalImageFormatProperties' -- ' closing tick for hsc2hs
+
 instance Eq VkExternalImageFormatProperties where
-        (VkExternalImageFormatProperties## a _) ==
-          x@(VkExternalImageFormatProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExternalImageFormatProperties where
-        (VkExternalImageFormatProperties## a _) `compare`
-          x@(VkExternalImageFormatProperties## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -528,20 +501,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkExternalImageFormatProperties where
-        unsafeAddr (VkExternalImageFormatProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExternalImageFormatProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExternalImageFormatProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkExternalImageFormatProperties where
         type StructFields VkExternalImageFormatProperties =
              '["sType", "pNext", "externalMemoryProperties"] -- ' closing tick for hsc2hs
@@ -684,20 +643,18 @@
 --   > } VkExternalImageFormatPropertiesNV;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalImageFormatPropertiesNV VkExternalImageFormatPropertiesNV registry at www.khronos.org>
-data VkExternalImageFormatPropertiesNV = VkExternalImageFormatPropertiesNV## Addr##
-                                                                            ByteArray##
+type VkExternalImageFormatPropertiesNV =
+     VulkanStruct VkExternalImageFormatPropertiesNV' -- ' closing tick for hsc2hs
 
+data VkExternalImageFormatPropertiesNV' -- ' closing tick for hsc2hs
+
 instance Eq VkExternalImageFormatPropertiesNV where
-        (VkExternalImageFormatPropertiesNV## a _) ==
-          x@(VkExternalImageFormatPropertiesNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExternalImageFormatPropertiesNV where
-        (VkExternalImageFormatPropertiesNV## a _) `compare`
-          x@(VkExternalImageFormatPropertiesNV## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -716,20 +673,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkExternalImageFormatPropertiesNV where
-        unsafeAddr (VkExternalImageFormatPropertiesNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExternalImageFormatPropertiesNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExternalImageFormatPropertiesNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkExternalImageFormatPropertiesNV where
         type StructFields VkExternalImageFormatPropertiesNV =
              '["imageFormatProperties", "externalMemoryFeatures", -- ' closing tick for hsc2hs
@@ -941,20 +884,18 @@
 --   > } VkExternalMemoryBufferCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfo registry at www.khronos.org>
-data VkExternalMemoryBufferCreateInfo = VkExternalMemoryBufferCreateInfo## Addr##
-                                                                          ByteArray##
+type VkExternalMemoryBufferCreateInfo =
+     VulkanStruct VkExternalMemoryBufferCreateInfo' -- ' closing tick for hsc2hs
 
+data VkExternalMemoryBufferCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkExternalMemoryBufferCreateInfo where
-        (VkExternalMemoryBufferCreateInfo## a _) ==
-          x@(VkExternalMemoryBufferCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExternalMemoryBufferCreateInfo where
-        (VkExternalMemoryBufferCreateInfo## a _) `compare`
-          x@(VkExternalMemoryBufferCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -973,20 +914,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkExternalMemoryBufferCreateInfo where
-        unsafeAddr (VkExternalMemoryBufferCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExternalMemoryBufferCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExternalMemoryBufferCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkExternalMemoryBufferCreateInfo where
         type StructFields VkExternalMemoryBufferCreateInfo =
              '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
@@ -1120,19 +1047,18 @@
 --   > } VkExternalMemoryImageCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfo registry at www.khronos.org>
-data VkExternalMemoryImageCreateInfo = VkExternalMemoryImageCreateInfo## Addr##
-                                                                        ByteArray##
+type VkExternalMemoryImageCreateInfo =
+     VulkanStruct VkExternalMemoryImageCreateInfo' -- ' closing tick for hsc2hs
 
+data VkExternalMemoryImageCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkExternalMemoryImageCreateInfo where
-        (VkExternalMemoryImageCreateInfo## a _) ==
-          x@(VkExternalMemoryImageCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExternalMemoryImageCreateInfo where
-        (VkExternalMemoryImageCreateInfo## a _) `compare`
-          x@(VkExternalMemoryImageCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1151,20 +1077,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkExternalMemoryImageCreateInfo where
-        unsafeAddr (VkExternalMemoryImageCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExternalMemoryImageCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExternalMemoryImageCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkExternalMemoryImageCreateInfo where
         type StructFields VkExternalMemoryImageCreateInfo =
              '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
@@ -1296,20 +1208,18 @@
 --   > } VkExternalMemoryImageCreateInfoNV;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalMemoryImageCreateInfoNV VkExternalMemoryImageCreateInfoNV registry at www.khronos.org>
-data VkExternalMemoryImageCreateInfoNV = VkExternalMemoryImageCreateInfoNV## Addr##
-                                                                            ByteArray##
+type VkExternalMemoryImageCreateInfoNV =
+     VulkanStruct VkExternalMemoryImageCreateInfoNV' -- ' closing tick for hsc2hs
 
+data VkExternalMemoryImageCreateInfoNV' -- ' closing tick for hsc2hs
+
 instance Eq VkExternalMemoryImageCreateInfoNV where
-        (VkExternalMemoryImageCreateInfoNV## a _) ==
-          x@(VkExternalMemoryImageCreateInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExternalMemoryImageCreateInfoNV where
-        (VkExternalMemoryImageCreateInfoNV## a _) `compare`
-          x@(VkExternalMemoryImageCreateInfoNV## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1328,20 +1238,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkExternalMemoryImageCreateInfoNV where
-        unsafeAddr (VkExternalMemoryImageCreateInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExternalMemoryImageCreateInfoNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExternalMemoryImageCreateInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkExternalMemoryImageCreateInfoNV where
         type StructFields VkExternalMemoryImageCreateInfoNV =
              '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
@@ -1473,19 +1369,18 @@
 --   > } VkExternalMemoryProperties;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalMemoryProperties VkExternalMemoryProperties registry at www.khronos.org>
-data VkExternalMemoryProperties = VkExternalMemoryProperties## Addr##
-                                                              ByteArray##
+type VkExternalMemoryProperties =
+     VulkanStruct VkExternalMemoryProperties' -- ' closing tick for hsc2hs
 
+data VkExternalMemoryProperties' -- ' closing tick for hsc2hs
+
 instance Eq VkExternalMemoryProperties where
-        (VkExternalMemoryProperties## a _) ==
-          x@(VkExternalMemoryProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExternalMemoryProperties where
-        (VkExternalMemoryProperties## a _) `compare`
-          x@(VkExternalMemoryProperties## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1503,20 +1398,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkExternalMemoryProperties where
-        unsafeAddr (VkExternalMemoryProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExternalMemoryProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExternalMemoryProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkExternalMemoryProperties where
         type StructFields VkExternalMemoryProperties =
              '["externalMemoryFeatures", "exportFromImportedHandleTypes", -- ' closing tick for hsc2hs
@@ -1675,19 +1556,18 @@
 --   > } VkExternalSemaphoreProperties;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalSemaphoreProperties VkExternalSemaphoreProperties registry at www.khronos.org>
-data VkExternalSemaphoreProperties = VkExternalSemaphoreProperties## Addr##
-                                                                    ByteArray##
+type VkExternalSemaphoreProperties =
+     VulkanStruct VkExternalSemaphoreProperties' -- ' closing tick for hsc2hs
 
+data VkExternalSemaphoreProperties' -- ' closing tick for hsc2hs
+
 instance Eq VkExternalSemaphoreProperties where
-        (VkExternalSemaphoreProperties## a _) ==
-          x@(VkExternalSemaphoreProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExternalSemaphoreProperties where
-        (VkExternalSemaphoreProperties## a _) `compare`
-          x@(VkExternalSemaphoreProperties## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1705,20 +1585,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExternalSemaphoreProperties where
-        unsafeAddr (VkExternalSemaphoreProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExternalSemaphoreProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExternalSemaphoreProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkExternalSemaphoreProperties where
         type StructFields VkExternalSemaphoreProperties =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Fence.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Fence.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Fence.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Fence.hsc
@@ -8,18 +8,17 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Fence
-       (VkFenceCreateInfo(..), VkFenceGetFdInfoKHR(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.External      (VkExternalFenceHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.Fence         (VkFenceCreateFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles            (VkFence)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkFenceCreateInfo, VkFenceCreateInfo', VkFenceGetFdInfoKHR, -- ' closing tick for hsc2hs
+        VkFenceGetFdInfoKHR') -- ' closing tick for hsc2hs
+       where
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.External      (VkExternalFenceHandleTypeFlagBits)
+import Graphics.Vulkan.Types.Enum.Fence         (VkFenceCreateFlags)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Handles            (VkFence)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkFenceCreateInfo {
 --   >     VkStructureType sType;
@@ -28,17 +27,17 @@
 --   > } VkFenceCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkFenceCreateInfo VkFenceCreateInfo registry at www.khronos.org>
-data VkFenceCreateInfo = VkFenceCreateInfo## Addr## ByteArray##
+type VkFenceCreateInfo = VulkanStruct VkFenceCreateInfo' -- ' closing tick for hsc2hs
 
+data VkFenceCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkFenceCreateInfo where
-        (VkFenceCreateInfo## a _) == x@(VkFenceCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkFenceCreateInfo where
-        (VkFenceCreateInfo## a _) `compare` x@(VkFenceCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -56,18 +55,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkFenceCreateInfo where
-        unsafeAddr (VkFenceCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkFenceCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkFenceCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkFenceCreateInfo where
         type StructFields VkFenceCreateInfo = '["sType", "pNext", "flags"] -- ' closing tick for hsc2hs
         type CUnionType VkFenceCreateInfo = 'False -- ' closing tick for hsc2hs
@@ -187,17 +174,17 @@
 --   > } VkFenceGetFdInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkFenceGetFdInfoKHR VkFenceGetFdInfoKHR registry at www.khronos.org>
-data VkFenceGetFdInfoKHR = VkFenceGetFdInfoKHR## Addr## ByteArray##
+type VkFenceGetFdInfoKHR = VulkanStruct VkFenceGetFdInfoKHR' -- ' closing tick for hsc2hs
 
+data VkFenceGetFdInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkFenceGetFdInfoKHR where
-        (VkFenceGetFdInfoKHR## a _) == x@(VkFenceGetFdInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkFenceGetFdInfoKHR where
-        (VkFenceGetFdInfoKHR## a _) `compare` x@(VkFenceGetFdInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -214,18 +201,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkFenceGetFdInfoKHR where
-        unsafeAddr (VkFenceGetFdInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkFenceGetFdInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkFenceGetFdInfoKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkFenceGetFdInfoKHR where
         type StructFields VkFenceGetFdInfoKHR =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/FormatProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/FormatProperties.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/FormatProperties.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/FormatProperties.hsc
@@ -8,18 +8,15 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.FormatProperties
-       (VkFormatProperties(..), VkFormatProperties2(..),
-        VkFormatProperties2KHR)
+       (VkFormatProperties, VkFormatProperties', VkFormatProperties2, -- ' closing tick for hsc2hs
+        VkFormatProperties2', VkFormatProperties2KHR) -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.Format        (VkFormatFeatureFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.Format        (VkFormatFeatureFlags)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkFormatProperties {
 --   >     VkFormatFeatureFlags   linearTilingFeatures;
@@ -28,17 +25,17 @@
 --   > } VkFormatProperties;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkFormatProperties VkFormatProperties registry at www.khronos.org>
-data VkFormatProperties = VkFormatProperties## Addr## ByteArray##
+type VkFormatProperties = VulkanStruct VkFormatProperties' -- ' closing tick for hsc2hs
 
+data VkFormatProperties' -- ' closing tick for hsc2hs
+
 instance Eq VkFormatProperties where
-        (VkFormatProperties## a _) == x@(VkFormatProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkFormatProperties where
-        (VkFormatProperties## a _) `compare` x@(VkFormatProperties## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -56,18 +53,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkFormatProperties where
-        unsafeAddr (VkFormatProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkFormatProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkFormatProperties## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkFormatProperties where
         type StructFields VkFormatProperties =
              '["linearTilingFeatures", "optimalTilingFeatures", -- ' closing tick for hsc2hs
@@ -198,17 +183,17 @@
 --   > } VkFormatProperties2;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkFormatProperties2 VkFormatProperties2 registry at www.khronos.org>
-data VkFormatProperties2 = VkFormatProperties2## Addr## ByteArray##
+type VkFormatProperties2 = VulkanStruct VkFormatProperties2' -- ' closing tick for hsc2hs
 
+data VkFormatProperties2' -- ' closing tick for hsc2hs
+
 instance Eq VkFormatProperties2 where
-        (VkFormatProperties2## a _) == x@(VkFormatProperties2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkFormatProperties2 where
-        (VkFormatProperties2## a _) `compare` x@(VkFormatProperties2## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -225,18 +210,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkFormatProperties2 where
-        unsafeAddr (VkFormatProperties2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkFormatProperties2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkFormatProperties2## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkFormatProperties2 where
         type StructFields VkFormatProperties2 =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/FramebufferCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/FramebufferCreateInfo.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/FramebufferCreateInfo.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/FramebufferCreateInfo.hsc
@@ -8,18 +8,14 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.FramebufferCreateInfo
-       (VkFramebufferCreateInfo(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks           (VkFramebufferCreateFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles            (VkImageView,
-                                                           VkRenderPass)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkFramebufferCreateInfo, VkFramebufferCreateInfo') where -- ' closing tick for hsc2hs
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Bitmasks           (VkFramebufferCreateFlags)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Handles            (VkImageView, VkRenderPass)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkFramebufferCreateInfo {
 --   >     VkStructureType sType;
@@ -34,18 +30,18 @@
 --   > } VkFramebufferCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkFramebufferCreateInfo VkFramebufferCreateInfo registry at www.khronos.org>
-data VkFramebufferCreateInfo = VkFramebufferCreateInfo## Addr##
-                                                        ByteArray##
+type VkFramebufferCreateInfo =
+     VulkanStruct VkFramebufferCreateInfo' -- ' closing tick for hsc2hs
 
+data VkFramebufferCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkFramebufferCreateInfo where
-        (VkFramebufferCreateInfo## a _) == x@(VkFramebufferCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkFramebufferCreateInfo where
-        (VkFramebufferCreateInfo## a _) `compare`
-          x@(VkFramebufferCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -62,18 +58,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkFramebufferCreateInfo where
-        unsafeAddr (VkFramebufferCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkFramebufferCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkFramebufferCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkFramebufferCreateInfo where
         type StructFields VkFramebufferCreateInfo =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc
@@ -8,16 +8,13 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.HdrMetadataEXT
-       (VkHdrMetadataEXT(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.XYColorEXT  (VkXYColorEXT)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkHdrMetadataEXT, VkHdrMetadataEXT') where -- ' closing tick for hsc2hs
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Struct.XYColorEXT  (VkXYColorEXT)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkHdrMetadataEXT {
 --   >     VkStructureType sType;
@@ -33,17 +30,17 @@
 --   > } VkHdrMetadataEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkHdrMetadataEXT VkHdrMetadataEXT registry at www.khronos.org>
-data VkHdrMetadataEXT = VkHdrMetadataEXT## Addr## ByteArray##
+type VkHdrMetadataEXT = VulkanStruct VkHdrMetadataEXT' -- ' closing tick for hsc2hs
 
+data VkHdrMetadataEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkHdrMetadataEXT where
-        (VkHdrMetadataEXT## a _) == x@(VkHdrMetadataEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkHdrMetadataEXT where
-        (VkHdrMetadataEXT## a _) `compare` x@(VkHdrMetadataEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -60,18 +57,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkHdrMetadataEXT where
-        unsafeAddr (VkHdrMetadataEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkHdrMetadataEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkHdrMetadataEXT## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkHdrMetadataEXT where
         type StructFields VkHdrMetadataEXT =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Image.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Image.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Image.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Image.hsc
@@ -12,52 +12,51 @@
 {-# LANGUAGE TypeFamilies          #-}
 {-# LANGUAGE UndecidableInstances  #-}
 module Graphics.Vulkan.Types.Struct.Image
-       (VkImageBlit(..), VkImageCopy(..), VkImageCreateInfo(..),
-        VkImageFormatListCreateInfoKHR(..), VkImageFormatProperties(..),
-        VkImageFormatProperties2(..), VkImageFormatProperties2KHR,
-        VkImageMemoryBarrier(..), VkImageMemoryRequirementsInfo2(..),
-        VkImageMemoryRequirementsInfo2KHR,
-        VkImagePlaneMemoryRequirementsInfo(..),
-        VkImagePlaneMemoryRequirementsInfoKHR, VkImageResolve(..),
-        VkImageSparseMemoryRequirementsInfo2(..),
-        VkImageSparseMemoryRequirementsInfo2KHR, VkImageSubresource(..),
-        VkImageSubresourceLayers(..), VkImageSubresourceRange(..),
-        VkImageSwapchainCreateInfoKHR(..), VkImageViewCreateInfo(..),
-        VkImageViewUsageCreateInfo(..), VkImageViewUsageCreateInfoKHR)
+       (VkImageBlit, VkImageBlit', VkImageCopy, VkImageCopy',
+        VkImageCreateInfo, VkImageCreateInfo', -- ' closing tick for hsc2hs
+        VkImageFormatListCreateInfoKHR, VkImageFormatListCreateInfoKHR', -- ' closing tick for hsc2hs
+        VkImageFormatProperties, VkImageFormatProperties', -- ' closing tick for hsc2hs
+        VkImageFormatProperties2, VkImageFormatProperties2', -- ' closing tick for hsc2hs
+        VkImageFormatProperties2KHR, VkImageMemoryBarrier,
+        VkImageMemoryBarrier', VkImageMemoryRequirementsInfo2, -- ' closing tick for hsc2hs
+        VkImageMemoryRequirementsInfo2', VkImageMemoryRequirementsInfo2KHR, -- ' closing tick for hsc2hs
+        VkImagePlaneMemoryRequirementsInfo,
+        VkImagePlaneMemoryRequirementsInfo', -- ' closing tick for hsc2hs
+        VkImagePlaneMemoryRequirementsInfoKHR, VkImageResolve,
+        VkImageResolve', VkImageSparseMemoryRequirementsInfo2, -- ' closing tick for hsc2hs
+        VkImageSparseMemoryRequirementsInfo2', -- ' closing tick for hsc2hs
+        VkImageSparseMemoryRequirementsInfo2KHR, VkImageSubresource,
+        VkImageSubresource', VkImageSubresourceLayers, -- ' closing tick for hsc2hs
+        VkImageSubresourceLayers', VkImageSubresourceRange, -- ' closing tick for hsc2hs
+        VkImageSubresourceRange', VkImageSwapchainCreateInfoKHR, -- ' closing tick for hsc2hs
+        VkImageSwapchainCreateInfoKHR', VkImageViewCreateInfo, -- ' closing tick for hsc2hs
+        VkImageViewCreateInfo', VkImageViewUsageCreateInfo, -- ' closing tick for hsc2hs
+        VkImageViewUsageCreateInfo', VkImageViewUsageCreateInfoKHR) -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Base                                      (Addr##,
-                                                                ByteArray##,
-                                                                Proxy##,
-                                                                byteArrayContents##,
-                                                                plusAddr##,
-                                                                proxy##)
-import           GHC.TypeLits                                  (KnownNat,
-                                                                natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes               (VkDeviceSize)
-import           Graphics.Vulkan.Types.Bitmasks                (VkImageViewCreateFlags)
-import           Graphics.Vulkan.Types.Enum.AccessFlags        (VkAccessFlags)
-import           Graphics.Vulkan.Types.Enum.Format             (VkFormat)
-import           Graphics.Vulkan.Types.Enum.Image              (VkImageAspectFlagBits,
-                                                                VkImageAspectFlags,
-                                                                VkImageCreateFlags,
-                                                                VkImageLayout,
-                                                                VkImageTiling,
-                                                                VkImageType,
-                                                                VkImageUsageFlags,
-                                                                VkImageViewType)
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags   (VkSampleCountFlagBits,
-                                                                VkSampleCountFlags)
-import           Graphics.Vulkan.Types.Enum.SharingMode        (VkSharingMode)
-import           Graphics.Vulkan.Types.Enum.StructureType      (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                 (VkImage,
-                                                                VkSwapchainKHR)
-import           Graphics.Vulkan.Types.Struct.ComponentMapping (VkComponentMapping)
-import           Graphics.Vulkan.Types.Struct.Extent           (VkExtent3D)
-import           Graphics.Vulkan.Types.Struct.Offset           (VkOffset3D)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
+import Foreign.Storable                              (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes               (VkDeviceSize)
+import Graphics.Vulkan.Types.Bitmasks                (VkImageViewCreateFlags)
+import Graphics.Vulkan.Types.Enum.AccessFlags        (VkAccessFlags)
+import Graphics.Vulkan.Types.Enum.Format             (VkFormat)
+import Graphics.Vulkan.Types.Enum.Image              (VkImageAspectFlagBits,
+                                                      VkImageAspectFlags,
+                                                      VkImageCreateFlags,
+                                                      VkImageLayout,
+                                                      VkImageTiling,
+                                                      VkImageType,
+                                                      VkImageUsageFlags,
+                                                      VkImageViewType)
+import Graphics.Vulkan.Types.Enum.SampleCountFlags   (VkSampleCountFlagBits,
+                                                      VkSampleCountFlags)
+import Graphics.Vulkan.Types.Enum.SharingMode        (VkSharingMode)
+import Graphics.Vulkan.Types.Enum.StructureType      (VkStructureType)
+import Graphics.Vulkan.Types.Handles                 (VkImage, VkSwapchainKHR)
+import Graphics.Vulkan.Types.Struct.ComponentMapping (VkComponentMapping)
+import Graphics.Vulkan.Types.Struct.Extent           (VkExtent3D)
+import Graphics.Vulkan.Types.Struct.Offset           (VkOffset3D)
+import System.IO.Unsafe                              (unsafeDupablePerformIO)
 
 -- | > typedef struct VkImageBlit {
 --   >     VkImageSubresourceLayers srcSubresource;
@@ -67,17 +66,17 @@
 --   > } VkImageBlit;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageBlit VkImageBlit registry at www.khronos.org>
-data VkImageBlit = VkImageBlit## Addr## ByteArray##
+type VkImageBlit = VulkanStruct VkImageBlit' -- ' closing tick for hsc2hs
 
+data VkImageBlit' -- ' closing tick for hsc2hs
+
 instance Eq VkImageBlit where
-        (VkImageBlit## a _) == x@(VkImageBlit## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImageBlit where
-        (VkImageBlit## a _) `compare` x@(VkImageBlit## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -95,18 +94,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImageBlit where
-        unsafeAddr (VkImageBlit## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageBlit## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageBlit## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImageBlit where
         type StructFields VkImageBlit =
              '["srcSubresource", "srcOffsets", "dstSubresource", "dstOffsets"] -- ' closing tick for hsc2hs
@@ -308,17 +295,17 @@
 --   > } VkImageCopy;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageCopy VkImageCopy registry at www.khronos.org>
-data VkImageCopy = VkImageCopy## Addr## ByteArray##
+type VkImageCopy = VulkanStruct VkImageCopy' -- ' closing tick for hsc2hs
 
+data VkImageCopy' -- ' closing tick for hsc2hs
+
 instance Eq VkImageCopy where
-        (VkImageCopy## a _) == x@(VkImageCopy## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImageCopy where
-        (VkImageCopy## a _) `compare` x@(VkImageCopy## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -336,18 +323,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImageCopy where
-        unsafeAddr (VkImageCopy## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageCopy## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageCopy## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImageCopy where
         type StructFields VkImageCopy =
              '["srcSubresource", "srcOffset", "dstSubresource", "dstOffset", -- ' closing tick for hsc2hs
@@ -547,17 +522,17 @@
 --   > } VkImageCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageCreateInfo VkImageCreateInfo registry at www.khronos.org>
-data VkImageCreateInfo = VkImageCreateInfo## Addr## ByteArray##
+type VkImageCreateInfo = VulkanStruct VkImageCreateInfo' -- ' closing tick for hsc2hs
 
+data VkImageCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkImageCreateInfo where
-        (VkImageCreateInfo## a _) == x@(VkImageCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImageCreateInfo where
-        (VkImageCreateInfo## a _) `compare` x@(VkImageCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -575,18 +550,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImageCreateInfo where
-        unsafeAddr (VkImageCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImageCreateInfo where
         type StructFields VkImageCreateInfo =
              '["sType", "pNext", "flags", "imageType", "format", "extent", -- ' closing tick for hsc2hs
@@ -1161,19 +1124,18 @@
 --   > } VkImageFormatListCreateInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageFormatListCreateInfoKHR VkImageFormatListCreateInfoKHR registry at www.khronos.org>
-data VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfoKHR## Addr##
-                                                                      ByteArray##
+type VkImageFormatListCreateInfoKHR =
+     VulkanStruct VkImageFormatListCreateInfoKHR' -- ' closing tick for hsc2hs
 
+data VkImageFormatListCreateInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkImageFormatListCreateInfoKHR where
-        (VkImageFormatListCreateInfoKHR## a _) ==
-          x@(VkImageFormatListCreateInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImageFormatListCreateInfoKHR where
-        (VkImageFormatListCreateInfoKHR## a _) `compare`
-          x@(VkImageFormatListCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1192,20 +1154,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImageFormatListCreateInfoKHR where
-        unsafeAddr (VkImageFormatListCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageFormatListCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageFormatListCreateInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImageFormatListCreateInfoKHR where
         type StructFields VkImageFormatListCreateInfoKHR =
              '["sType", "pNext", "viewFormatCount", "pViewFormats"] -- ' closing tick for hsc2hs
@@ -1374,18 +1322,18 @@
 --   > } VkImageFormatProperties;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageFormatProperties VkImageFormatProperties registry at www.khronos.org>
-data VkImageFormatProperties = VkImageFormatProperties## Addr##
-                                                        ByteArray##
+type VkImageFormatProperties =
+     VulkanStruct VkImageFormatProperties' -- ' closing tick for hsc2hs
 
+data VkImageFormatProperties' -- ' closing tick for hsc2hs
+
 instance Eq VkImageFormatProperties where
-        (VkImageFormatProperties## a _) == x@(VkImageFormatProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImageFormatProperties where
-        (VkImageFormatProperties## a _) `compare`
-          x@(VkImageFormatProperties## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1403,18 +1351,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImageFormatProperties where
-        unsafeAddr (VkImageFormatProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageFormatProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageFormatProperties## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImageFormatProperties where
         type StructFields VkImageFormatProperties =
              '["maxExtent", "maxMipLevels", "maxArrayLayers", "sampleCounts", -- ' closing tick for hsc2hs
@@ -1613,18 +1549,18 @@
 --   > } VkImageFormatProperties2;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageFormatProperties2 VkImageFormatProperties2 registry at www.khronos.org>
-data VkImageFormatProperties2 = VkImageFormatProperties2## Addr##
-                                                          ByteArray##
+type VkImageFormatProperties2 =
+     VulkanStruct VkImageFormatProperties2' -- ' closing tick for hsc2hs
 
+data VkImageFormatProperties2' -- ' closing tick for hsc2hs
+
 instance Eq VkImageFormatProperties2 where
-        (VkImageFormatProperties2## a _) ==
-          x@(VkImageFormatProperties2## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImageFormatProperties2 where
-        (VkImageFormatProperties2## a _) `compare`
-          x@(VkImageFormatProperties2## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1642,19 +1578,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImageFormatProperties2 where
-        unsafeAddr (VkImageFormatProperties2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageFormatProperties2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageFormatProperties2## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImageFormatProperties2 where
         type StructFields VkImageFormatProperties2 =
              '["sType", "pNext", "imageFormatProperties"] -- ' closing tick for hsc2hs
@@ -1789,17 +1712,17 @@
 --   > } VkImageMemoryBarrier;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageMemoryBarrier VkImageMemoryBarrier registry at www.khronos.org>
-data VkImageMemoryBarrier = VkImageMemoryBarrier## Addr## ByteArray##
+type VkImageMemoryBarrier = VulkanStruct VkImageMemoryBarrier' -- ' closing tick for hsc2hs
 
+data VkImageMemoryBarrier' -- ' closing tick for hsc2hs
+
 instance Eq VkImageMemoryBarrier where
-        (VkImageMemoryBarrier## a _) == x@(VkImageMemoryBarrier## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImageMemoryBarrier where
-        (VkImageMemoryBarrier## a _) `compare` x@(VkImageMemoryBarrier## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1817,18 +1740,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImageMemoryBarrier where
-        unsafeAddr (VkImageMemoryBarrier## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageMemoryBarrier## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageMemoryBarrier## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImageMemoryBarrier where
         type StructFields VkImageMemoryBarrier =
              '["sType", "pNext", "srcAccessMask", "dstAccessMask", "oldLayout", -- ' closing tick for hsc2hs
@@ -2206,19 +2117,18 @@
 --   > } VkImageMemoryRequirementsInfo2;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2 registry at www.khronos.org>
-data VkImageMemoryRequirementsInfo2 = VkImageMemoryRequirementsInfo2## Addr##
-                                                                      ByteArray##
+type VkImageMemoryRequirementsInfo2 =
+     VulkanStruct VkImageMemoryRequirementsInfo2' -- ' closing tick for hsc2hs
 
+data VkImageMemoryRequirementsInfo2' -- ' closing tick for hsc2hs
+
 instance Eq VkImageMemoryRequirementsInfo2 where
-        (VkImageMemoryRequirementsInfo2## a _) ==
-          x@(VkImageMemoryRequirementsInfo2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImageMemoryRequirementsInfo2 where
-        (VkImageMemoryRequirementsInfo2## a _) `compare`
-          x@(VkImageMemoryRequirementsInfo2## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2237,20 +2147,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImageMemoryRequirementsInfo2 where
-        unsafeAddr (VkImageMemoryRequirementsInfo2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageMemoryRequirementsInfo2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageMemoryRequirementsInfo2##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImageMemoryRequirementsInfo2 where
         type StructFields VkImageMemoryRequirementsInfo2 =
              '["sType", "pNext", "image"] -- ' closing tick for hsc2hs
@@ -2378,20 +2274,18 @@
 --   > } VkImagePlaneMemoryRequirementsInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfo registry at www.khronos.org>
-data VkImagePlaneMemoryRequirementsInfo = VkImagePlaneMemoryRequirementsInfo## Addr##
-                                                                              ByteArray##
+type VkImagePlaneMemoryRequirementsInfo =
+     VulkanStruct VkImagePlaneMemoryRequirementsInfo' -- ' closing tick for hsc2hs
 
+data VkImagePlaneMemoryRequirementsInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkImagePlaneMemoryRequirementsInfo where
-        (VkImagePlaneMemoryRequirementsInfo## a _) ==
-          x@(VkImagePlaneMemoryRequirementsInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImagePlaneMemoryRequirementsInfo where
-        (VkImagePlaneMemoryRequirementsInfo## a _) `compare`
-          x@(VkImagePlaneMemoryRequirementsInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2410,20 +2304,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImagePlaneMemoryRequirementsInfo where
-        unsafeAddr (VkImagePlaneMemoryRequirementsInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImagePlaneMemoryRequirementsInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImagePlaneMemoryRequirementsInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImagePlaneMemoryRequirementsInfo where
         type StructFields VkImagePlaneMemoryRequirementsInfo =
              '["sType", "pNext", "planeAspect"] -- ' closing tick for hsc2hs
@@ -2563,17 +2443,17 @@
 --   > } VkImageResolve;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageResolve VkImageResolve registry at www.khronos.org>
-data VkImageResolve = VkImageResolve## Addr## ByteArray##
+type VkImageResolve = VulkanStruct VkImageResolve' -- ' closing tick for hsc2hs
 
+data VkImageResolve' -- ' closing tick for hsc2hs
+
 instance Eq VkImageResolve where
-        (VkImageResolve## a _) == x@(VkImageResolve## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImageResolve where
-        (VkImageResolve## a _) `compare` x@(VkImageResolve## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2591,18 +2471,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImageResolve where
-        unsafeAddr (VkImageResolve## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageResolve## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageResolve## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImageResolve where
         type StructFields VkImageResolve =
              '["srcSubresource", "srcOffset", "dstSubresource", "dstOffset", -- ' closing tick for hsc2hs
@@ -2792,20 +2660,18 @@
 --   > } VkImageSparseMemoryRequirementsInfo2;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2 registry at www.khronos.org>
-data VkImageSparseMemoryRequirementsInfo2 = VkImageSparseMemoryRequirementsInfo2## Addr##
-                                                                                  ByteArray##
+type VkImageSparseMemoryRequirementsInfo2 =
+     VulkanStruct VkImageSparseMemoryRequirementsInfo2' -- ' closing tick for hsc2hs
 
+data VkImageSparseMemoryRequirementsInfo2' -- ' closing tick for hsc2hs
+
 instance Eq VkImageSparseMemoryRequirementsInfo2 where
-        (VkImageSparseMemoryRequirementsInfo2## a _) ==
-          x@(VkImageSparseMemoryRequirementsInfo2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImageSparseMemoryRequirementsInfo2 where
-        (VkImageSparseMemoryRequirementsInfo2## a _) `compare`
-          x@(VkImageSparseMemoryRequirementsInfo2## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2825,21 +2691,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImageSparseMemoryRequirementsInfo2
-         where
-        unsafeAddr (VkImageSparseMemoryRequirementsInfo2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageSparseMemoryRequirementsInfo2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageSparseMemoryRequirementsInfo2##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImageSparseMemoryRequirementsInfo2 where
         type StructFields VkImageSparseMemoryRequirementsInfo2 =
              '["sType", "pNext", "image"] -- ' closing tick for hsc2hs
@@ -2975,17 +2826,17 @@
 --   > } VkImageSubresource;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageSubresource VkImageSubresource registry at www.khronos.org>
-data VkImageSubresource = VkImageSubresource## Addr## ByteArray##
+type VkImageSubresource = VulkanStruct VkImageSubresource' -- ' closing tick for hsc2hs
 
+data VkImageSubresource' -- ' closing tick for hsc2hs
+
 instance Eq VkImageSubresource where
-        (VkImageSubresource## a _) == x@(VkImageSubresource## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImageSubresource where
-        (VkImageSubresource## a _) `compare` x@(VkImageSubresource## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -3003,18 +2854,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImageSubresource where
-        unsafeAddr (VkImageSubresource## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageSubresource## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageSubresource## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImageSubresource where
         type StructFields VkImageSubresource =
              '["aspectMask", "mipLevel", "arrayLayer"] -- ' closing tick for hsc2hs
@@ -3135,18 +2974,18 @@
 --   > } VkImageSubresourceLayers;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageSubresourceLayers VkImageSubresourceLayers registry at www.khronos.org>
-data VkImageSubresourceLayers = VkImageSubresourceLayers## Addr##
-                                                          ByteArray##
+type VkImageSubresourceLayers =
+     VulkanStruct VkImageSubresourceLayers' -- ' closing tick for hsc2hs
 
+data VkImageSubresourceLayers' -- ' closing tick for hsc2hs
+
 instance Eq VkImageSubresourceLayers where
-        (VkImageSubresourceLayers## a _) ==
-          x@(VkImageSubresourceLayers## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImageSubresourceLayers where
-        (VkImageSubresourceLayers## a _) `compare`
-          x@(VkImageSubresourceLayers## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -3164,19 +3003,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImageSubresourceLayers where
-        unsafeAddr (VkImageSubresourceLayers## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageSubresourceLayers## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageSubresourceLayers## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImageSubresourceLayers where
         type StructFields VkImageSubresourceLayers =
              '["aspectMask", "mipLevel", "baseArrayLayer", "layerCount"] -- ' closing tick for hsc2hs
@@ -3339,18 +3165,18 @@
 --   > } VkImageSubresourceRange;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageSubresourceRange VkImageSubresourceRange registry at www.khronos.org>
-data VkImageSubresourceRange = VkImageSubresourceRange## Addr##
-                                                        ByteArray##
+type VkImageSubresourceRange =
+     VulkanStruct VkImageSubresourceRange' -- ' closing tick for hsc2hs
 
+data VkImageSubresourceRange' -- ' closing tick for hsc2hs
+
 instance Eq VkImageSubresourceRange where
-        (VkImageSubresourceRange## a _) == x@(VkImageSubresourceRange## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImageSubresourceRange where
-        (VkImageSubresourceRange## a _) `compare`
-          x@(VkImageSubresourceRange## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -3368,18 +3194,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImageSubresourceRange where
-        unsafeAddr (VkImageSubresourceRange## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageSubresourceRange## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageSubresourceRange## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImageSubresourceRange where
         type StructFields VkImageSubresourceRange =
              '["aspectMask", "baseMipLevel", "levelCount", "baseArrayLayer", -- ' closing tick for hsc2hs
@@ -3575,19 +3389,18 @@
 --   > } VkImageSwapchainCreateInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageSwapchainCreateInfoKHR VkImageSwapchainCreateInfoKHR registry at www.khronos.org>
-data VkImageSwapchainCreateInfoKHR = VkImageSwapchainCreateInfoKHR## Addr##
-                                                                    ByteArray##
+type VkImageSwapchainCreateInfoKHR =
+     VulkanStruct VkImageSwapchainCreateInfoKHR' -- ' closing tick for hsc2hs
 
+data VkImageSwapchainCreateInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkImageSwapchainCreateInfoKHR where
-        (VkImageSwapchainCreateInfoKHR## a _) ==
-          x@(VkImageSwapchainCreateInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImageSwapchainCreateInfoKHR where
-        (VkImageSwapchainCreateInfoKHR## a _) `compare`
-          x@(VkImageSwapchainCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -3606,20 +3419,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImageSwapchainCreateInfoKHR where
-        unsafeAddr (VkImageSwapchainCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageSwapchainCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageSwapchainCreateInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImageSwapchainCreateInfoKHR where
         type StructFields VkImageSwapchainCreateInfoKHR =
              '["sType", "pNext", "swapchain"] -- ' closing tick for hsc2hs
@@ -3752,18 +3551,17 @@
 --   > } VkImageViewCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageViewCreateInfo VkImageViewCreateInfo registry at www.khronos.org>
-data VkImageViewCreateInfo = VkImageViewCreateInfo## Addr##
-                                                    ByteArray##
+type VkImageViewCreateInfo = VulkanStruct VkImageViewCreateInfo' -- ' closing tick for hsc2hs
 
+data VkImageViewCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkImageViewCreateInfo where
-        (VkImageViewCreateInfo## a _) == x@(VkImageViewCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImageViewCreateInfo where
-        (VkImageViewCreateInfo## a _) `compare`
-          x@(VkImageViewCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -3781,18 +3579,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImageViewCreateInfo where
-        unsafeAddr (VkImageViewCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageViewCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageViewCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImageViewCreateInfo where
         type StructFields VkImageViewCreateInfo =
              '["sType", "pNext", "flags", "image", "viewType", "format", -- ' closing tick for hsc2hs
@@ -4091,19 +3877,18 @@
 --   > } VkImageViewUsageCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageViewUsageCreateInfo VkImageViewUsageCreateInfo registry at www.khronos.org>
-data VkImageViewUsageCreateInfo = VkImageViewUsageCreateInfo## Addr##
-                                                              ByteArray##
+type VkImageViewUsageCreateInfo =
+     VulkanStruct VkImageViewUsageCreateInfo' -- ' closing tick for hsc2hs
 
+data VkImageViewUsageCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkImageViewUsageCreateInfo where
-        (VkImageViewUsageCreateInfo## a _) ==
-          x@(VkImageViewUsageCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImageViewUsageCreateInfo where
-        (VkImageViewUsageCreateInfo## a _) `compare`
-          x@(VkImageViewUsageCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -4120,20 +3905,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImageViewUsageCreateInfo where
-        unsafeAddr (VkImageViewUsageCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageViewUsageCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageViewUsageCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkImageViewUsageCreateInfo where
         type StructFields VkImageViewUsageCreateInfo =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Import.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Import.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Import.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Import.hsc
@@ -8,27 +8,24 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Import
-       (VkImportFenceFdInfoKHR(..), VkImportMemoryFdInfoKHR(..),
-        VkImportMemoryHostPointerInfoEXT(..),
-        VkImportSemaphoreFdInfoKHR(..))
+       (VkImportFenceFdInfoKHR, VkImportFenceFdInfoKHR', -- ' closing tick for hsc2hs
+        VkImportMemoryFdInfoKHR, VkImportMemoryFdInfoKHR', -- ' closing tick for hsc2hs
+        VkImportMemoryHostPointerInfoEXT,
+        VkImportMemoryHostPointerInfoEXT', VkImportSemaphoreFdInfoKHR, -- ' closing tick for hsc2hs
+        VkImportSemaphoreFdInfoKHR') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                               (Storable (..))
-import           GHC.Base                                       (Addr##,
-                                                                 ByteArray##,
-                                                                 byteArrayContents##,
-                                                                 plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.External            (VkExternalFenceHandleTypeFlagBits,
-                                                                 VkExternalMemoryHandleTypeFlagBits,
-                                                                 VkExternalSemaphoreHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.Fence               (VkFenceImportFlags)
-import           Graphics.Vulkan.Types.Enum.SemaphoreImportFlag (VkSemaphoreImportFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType       (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                  (VkFence,
-                                                                 VkSemaphore)
-import           Graphics.Vulkan.Types.Struct.Memory            (VkMemoryAllocateInfo)
-import           System.IO.Unsafe                               (unsafeDupablePerformIO)
+import Foreign.Storable                               (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.External            (VkExternalFenceHandleTypeFlagBits,
+                                                       VkExternalMemoryHandleTypeFlagBits,
+                                                       VkExternalSemaphoreHandleTypeFlagBits)
+import Graphics.Vulkan.Types.Enum.Fence               (VkFenceImportFlags)
+import Graphics.Vulkan.Types.Enum.SemaphoreImportFlag (VkSemaphoreImportFlags)
+import Graphics.Vulkan.Types.Enum.StructureType       (VkStructureType)
+import Graphics.Vulkan.Types.Handles                  (VkFence, VkSemaphore)
+import Graphics.Vulkan.Types.Struct.Memory            (VkMemoryAllocateInfo)
+import System.IO.Unsafe                               (unsafeDupablePerformIO)
 
 -- | > typedef struct VkImportFenceFdInfoKHR {
 --   >     VkStructureType sType;
@@ -40,18 +37,17 @@
 --   > } VkImportFenceFdInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportFenceFdInfoKHR VkImportFenceFdInfoKHR registry at www.khronos.org>
-data VkImportFenceFdInfoKHR = VkImportFenceFdInfoKHR## Addr##
-                                                      ByteArray##
+type VkImportFenceFdInfoKHR = VulkanStruct VkImportFenceFdInfoKHR' -- ' closing tick for hsc2hs
 
+data VkImportFenceFdInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkImportFenceFdInfoKHR where
-        (VkImportFenceFdInfoKHR## a _) == x@(VkImportFenceFdInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImportFenceFdInfoKHR where
-        (VkImportFenceFdInfoKHR## a _) `compare`
-          x@(VkImportFenceFdInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -69,18 +65,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImportFenceFdInfoKHR where
-        unsafeAddr (VkImportFenceFdInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImportFenceFdInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImportFenceFdInfoKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImportFenceFdInfoKHR where
         type StructFields VkImportFenceFdInfoKHR =
              '["sType", "pNext", "fence", "flags", "handleType", "fd"] -- ' closing tick for hsc2hs
@@ -305,18 +289,18 @@
 --   > } VkImportMemoryFdInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportMemoryFdInfoKHR VkImportMemoryFdInfoKHR registry at www.khronos.org>
-data VkImportMemoryFdInfoKHR = VkImportMemoryFdInfoKHR## Addr##
-                                                        ByteArray##
+type VkImportMemoryFdInfoKHR =
+     VulkanStruct VkImportMemoryFdInfoKHR' -- ' closing tick for hsc2hs
 
+data VkImportMemoryFdInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkImportMemoryFdInfoKHR where
-        (VkImportMemoryFdInfoKHR## a _) == x@(VkImportMemoryFdInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImportMemoryFdInfoKHR where
-        (VkImportMemoryFdInfoKHR## a _) `compare`
-          x@(VkImportMemoryFdInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -334,18 +318,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImportMemoryFdInfoKHR where
-        unsafeAddr (VkImportMemoryFdInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImportMemoryFdInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImportMemoryFdInfoKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImportMemoryFdInfoKHR where
         type StructFields VkImportMemoryFdInfoKHR =
              '["sType", "pNext", "handleType", "fd"] -- ' closing tick for hsc2hs
@@ -502,20 +474,18 @@
 --   > } VkImportMemoryHostPointerInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportMemoryHostPointerInfoEXT VkImportMemoryHostPointerInfoEXT registry at www.khronos.org>
-data VkImportMemoryHostPointerInfoEXT = VkImportMemoryHostPointerInfoEXT## Addr##
-                                                                          ByteArray##
+type VkImportMemoryHostPointerInfoEXT =
+     VulkanStruct VkImportMemoryHostPointerInfoEXT' -- ' closing tick for hsc2hs
 
+data VkImportMemoryHostPointerInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkImportMemoryHostPointerInfoEXT where
-        (VkImportMemoryHostPointerInfoEXT## a _) ==
-          x@(VkImportMemoryHostPointerInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImportMemoryHostPointerInfoEXT where
-        (VkImportMemoryHostPointerInfoEXT## a _) `compare`
-          x@(VkImportMemoryHostPointerInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -534,20 +504,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImportMemoryHostPointerInfoEXT where
-        unsafeAddr (VkImportMemoryHostPointerInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImportMemoryHostPointerInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImportMemoryHostPointerInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImportMemoryHostPointerInfoEXT where
         type StructFields VkImportMemoryHostPointerInfoEXT =
              '["sType", "pNext", "handleType", "pHostPointer"] -- ' closing tick for hsc2hs
@@ -718,19 +674,18 @@
 --   > } VkImportSemaphoreFdInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportSemaphoreFdInfoKHR VkImportSemaphoreFdInfoKHR registry at www.khronos.org>
-data VkImportSemaphoreFdInfoKHR = VkImportSemaphoreFdInfoKHR## Addr##
-                                                              ByteArray##
+type VkImportSemaphoreFdInfoKHR =
+     VulkanStruct VkImportSemaphoreFdInfoKHR' -- ' closing tick for hsc2hs
 
+data VkImportSemaphoreFdInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkImportSemaphoreFdInfoKHR where
-        (VkImportSemaphoreFdInfoKHR## a _) ==
-          x@(VkImportSemaphoreFdInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImportSemaphoreFdInfoKHR where
-        (VkImportSemaphoreFdInfoKHR## a _) `compare`
-          x@(VkImportSemaphoreFdInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -747,20 +702,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImportSemaphoreFdInfoKHR where
-        unsafeAddr (VkImportSemaphoreFdInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImportSemaphoreFdInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImportSemaphoreFdInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkImportSemaphoreFdInfoKHR where
         type StructFields VkImportSemaphoreFdInfoKHR =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/IndirectCommands.hsc b/src-gen/Graphics/Vulkan/Types/Struct/IndirectCommands.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/IndirectCommands.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/IndirectCommands.hsc
@@ -8,23 +8,22 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.IndirectCommands
-       (VkIndirectCommandsLayoutCreateInfoNVX(..),
-        VkIndirectCommandsLayoutTokenNVX(..),
-        VkIndirectCommandsTokenNVX(..))
+       (VkIndirectCommandsLayoutCreateInfoNVX,
+        VkIndirectCommandsLayoutCreateInfoNVX', -- ' closing tick for hsc2hs
+        VkIndirectCommandsLayoutTokenNVX,
+        VkIndirectCommandsLayoutTokenNVX', VkIndirectCommandsTokenNVX, -- ' closing tick for hsc2hs
+        VkIndirectCommandsTokenNVX') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                            (Storable (..))
-import           GHC.Base                                    (Addr##, ByteArray##,
-                                                              byteArrayContents##,
-                                                              plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes             (VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.IndirectCommands (VkIndirectCommandsLayoutUsageFlagsNVX,
-                                                              VkIndirectCommandsTokenTypeNVX)
-import           Graphics.Vulkan.Types.Enum.Pipeline         (VkPipelineBindPoint)
-import           Graphics.Vulkan.Types.Enum.StructureType    (VkStructureType)
-import           Graphics.Vulkan.Types.Handles               (VkBuffer)
-import           System.IO.Unsafe                            (unsafeDupablePerformIO)
+import Foreign.Storable                            (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes             (VkDeviceSize)
+import Graphics.Vulkan.Types.Enum.IndirectCommands (VkIndirectCommandsLayoutUsageFlagsNVX,
+                                                    VkIndirectCommandsTokenTypeNVX)
+import Graphics.Vulkan.Types.Enum.Pipeline         (VkPipelineBindPoint)
+import Graphics.Vulkan.Types.Enum.StructureType    (VkStructureType)
+import Graphics.Vulkan.Types.Handles               (VkBuffer)
+import System.IO.Unsafe                            (unsafeDupablePerformIO)
 
 -- | > typedef struct VkIndirectCommandsLayoutCreateInfoNVX {
 --   >     VkStructureType sType;
@@ -36,20 +35,18 @@
 --   > } VkIndirectCommandsLayoutCreateInfoNVX;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkIndirectCommandsLayoutCreateInfoNVX VkIndirectCommandsLayoutCreateInfoNVX registry at www.khronos.org>
-data VkIndirectCommandsLayoutCreateInfoNVX = VkIndirectCommandsLayoutCreateInfoNVX## Addr##
-                                                                                    ByteArray##
+type VkIndirectCommandsLayoutCreateInfoNVX =
+     VulkanStruct VkIndirectCommandsLayoutCreateInfoNVX' -- ' closing tick for hsc2hs
 
+data VkIndirectCommandsLayoutCreateInfoNVX' -- ' closing tick for hsc2hs
+
 instance Eq VkIndirectCommandsLayoutCreateInfoNVX where
-        (VkIndirectCommandsLayoutCreateInfoNVX## a _) ==
-          x@(VkIndirectCommandsLayoutCreateInfoNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkIndirectCommandsLayoutCreateInfoNVX where
-        (VkIndirectCommandsLayoutCreateInfoNVX## a _) `compare`
-          x@(VkIndirectCommandsLayoutCreateInfoNVX## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -69,21 +66,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkIndirectCommandsLayoutCreateInfoNVX
-         where
-        unsafeAddr (VkIndirectCommandsLayoutCreateInfoNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkIndirectCommandsLayoutCreateInfoNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkIndirectCommandsLayoutCreateInfoNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkIndirectCommandsLayoutCreateInfoNVX where
         type StructFields VkIndirectCommandsLayoutCreateInfoNVX =
              '["sType", "pNext", "pipelineBindPoint", "flags", "tokenCount", -- ' closing tick for hsc2hs
@@ -346,20 +328,18 @@
 --   > } VkIndirectCommandsLayoutTokenNVX;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkIndirectCommandsLayoutTokenNVX VkIndirectCommandsLayoutTokenNVX registry at www.khronos.org>
-data VkIndirectCommandsLayoutTokenNVX = VkIndirectCommandsLayoutTokenNVX## Addr##
-                                                                          ByteArray##
+type VkIndirectCommandsLayoutTokenNVX =
+     VulkanStruct VkIndirectCommandsLayoutTokenNVX' -- ' closing tick for hsc2hs
 
+data VkIndirectCommandsLayoutTokenNVX' -- ' closing tick for hsc2hs
+
 instance Eq VkIndirectCommandsLayoutTokenNVX where
-        (VkIndirectCommandsLayoutTokenNVX## a _) ==
-          x@(VkIndirectCommandsLayoutTokenNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkIndirectCommandsLayoutTokenNVX where
-        (VkIndirectCommandsLayoutTokenNVX## a _) `compare`
-          x@(VkIndirectCommandsLayoutTokenNVX## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -378,20 +358,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkIndirectCommandsLayoutTokenNVX where
-        unsafeAddr (VkIndirectCommandsLayoutTokenNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkIndirectCommandsLayoutTokenNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkIndirectCommandsLayoutTokenNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkIndirectCommandsLayoutTokenNVX where
         type StructFields VkIndirectCommandsLayoutTokenNVX =
              '["tokenType", "bindingUnit", "dynamicCount", "divisor"] -- ' closing tick for hsc2hs
@@ -560,19 +526,18 @@
 --   > } VkIndirectCommandsTokenNVX;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkIndirectCommandsTokenNVX VkIndirectCommandsTokenNVX registry at www.khronos.org>
-data VkIndirectCommandsTokenNVX = VkIndirectCommandsTokenNVX## Addr##
-                                                              ByteArray##
+type VkIndirectCommandsTokenNVX =
+     VulkanStruct VkIndirectCommandsTokenNVX' -- ' closing tick for hsc2hs
 
+data VkIndirectCommandsTokenNVX' -- ' closing tick for hsc2hs
+
 instance Eq VkIndirectCommandsTokenNVX where
-        (VkIndirectCommandsTokenNVX## a _) ==
-          x@(VkIndirectCommandsTokenNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkIndirectCommandsTokenNVX where
-        (VkIndirectCommandsTokenNVX## a _) `compare`
-          x@(VkIndirectCommandsTokenNVX## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -589,20 +554,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkIndirectCommandsTokenNVX where
-        unsafeAddr (VkIndirectCommandsTokenNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkIndirectCommandsTokenNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkIndirectCommandsTokenNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkIndirectCommandsTokenNVX where
         type StructFields VkIndirectCommandsTokenNVX =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/InputAttachmentAspectReference.hsc b/src-gen/Graphics/Vulkan/Types/Struct/InputAttachmentAspectReference.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/InputAttachmentAspectReference.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/InputAttachmentAspectReference.hsc
@@ -8,17 +8,15 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.InputAttachmentAspectReference
-       (VkInputAttachmentAspectReference(..),
+       (VkInputAttachmentAspectReference,
+        VkInputAttachmentAspectReference', -- ' closing tick for hsc2hs
         VkInputAttachmentAspectReferenceKHR)
        where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Base                         (Addr##, ByteArray##,
-                                                   byteArrayContents##,
-                                                   plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.Image (VkImageAspectFlags)
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+import Foreign.Storable                 (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.Image (VkImageAspectFlags)
+import System.IO.Unsafe                 (unsafeDupablePerformIO)
 
 -- | > typedef struct VkInputAttachmentAspectReference {
 --   >     uint32_t                        subpass;
@@ -27,20 +25,18 @@
 --   > } VkInputAttachmentAspectReference;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkInputAttachmentAspectReference VkInputAttachmentAspectReference registry at www.khronos.org>
-data VkInputAttachmentAspectReference = VkInputAttachmentAspectReference## Addr##
-                                                                          ByteArray##
+type VkInputAttachmentAspectReference =
+     VulkanStruct VkInputAttachmentAspectReference' -- ' closing tick for hsc2hs
 
+data VkInputAttachmentAspectReference' -- ' closing tick for hsc2hs
+
 instance Eq VkInputAttachmentAspectReference where
-        (VkInputAttachmentAspectReference## a _) ==
-          x@(VkInputAttachmentAspectReference## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkInputAttachmentAspectReference where
-        (VkInputAttachmentAspectReference## a _) `compare`
-          x@(VkInputAttachmentAspectReference## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -58,20 +54,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkInputAttachmentAspectReference where
-        unsafeAddr (VkInputAttachmentAspectReference## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkInputAttachmentAspectReference## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkInputAttachmentAspectReference##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkInputAttachmentAspectReference where
         type StructFields VkInputAttachmentAspectReference =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/InstanceCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/InstanceCreateInfo.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/InstanceCreateInfo.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/InstanceCreateInfo.hsc
@@ -8,18 +8,14 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.InstanceCreateInfo
-       (VkInstanceCreateInfo(..)) where
-import           Foreign.Storable                             (Storable (..))
-import           GHC.Base                                     (Addr##,
-                                                               ByteArray##,
-                                                               byteArrayContents##,
-                                                               plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks               (VkInstanceCreateFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType     (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.ApplicationInfo (VkApplicationInfo)
-import           System.IO.Unsafe                             (unsafeDupablePerformIO)
+       (VkInstanceCreateInfo, VkInstanceCreateInfo') where -- ' closing tick for hsc2hs
+import Foreign.Storable                             (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Bitmasks               (VkInstanceCreateFlags)
+import Graphics.Vulkan.Types.Enum.StructureType     (VkStructureType)
+import Graphics.Vulkan.Types.Struct.ApplicationInfo (VkApplicationInfo)
+import System.IO.Unsafe                             (unsafeDupablePerformIO)
 
 -- | > typedef struct VkInstanceCreateInfo {
 --   >     VkStructureType sType;
@@ -33,17 +29,17 @@
 --   > } VkInstanceCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkInstanceCreateInfo VkInstanceCreateInfo registry at www.khronos.org>
-data VkInstanceCreateInfo = VkInstanceCreateInfo## Addr## ByteArray##
+type VkInstanceCreateInfo = VulkanStruct VkInstanceCreateInfo' -- ' closing tick for hsc2hs
 
+data VkInstanceCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkInstanceCreateInfo where
-        (VkInstanceCreateInfo## a _) == x@(VkInstanceCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkInstanceCreateInfo where
-        (VkInstanceCreateInfo## a _) `compare` x@(VkInstanceCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -60,18 +56,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkInstanceCreateInfo where
-        unsafeAddr (VkInstanceCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkInstanceCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkInstanceCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkInstanceCreateInfo where
         type StructFields VkInstanceCreateInfo =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/LayerProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/LayerProperties.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/LayerProperties.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/LayerProperties.hsc
@@ -12,18 +12,15 @@
 {-# LANGUAGE TypeFamilies          #-}
 {-# LANGUAGE UndecidableInstances  #-}
 module Graphics.Vulkan.Types.Struct.LayerProperties
-       (VkLayerProperties(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Base                         (Addr##, ByteArray##, Proxy##,
-                                                   byteArrayContents##,
-                                                   plusAddr##, proxy##)
-import           GHC.TypeLits                     (KnownNat, natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Constants        (VK_MAX_DESCRIPTION_SIZE, pattern VK_MAX_DESCRIPTION_SIZE,
-                                                   VK_MAX_EXTENSION_NAME_SIZE,
-                                                   pattern VK_MAX_EXTENSION_NAME_SIZE)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+       (VkLayerProperties, VkLayerProperties') where -- ' closing tick for hsc2hs
+import Foreign.Storable                 (Storable (..))
+import Graphics.Vulkan.Constants        (VK_MAX_DESCRIPTION_SIZE,
+                                         pattern VK_MAX_DESCRIPTION_SIZE,
+                                         VK_MAX_EXTENSION_NAME_SIZE,
+                                         pattern VK_MAX_EXTENSION_NAME_SIZE)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import System.IO.Unsafe                 (unsafeDupablePerformIO)
 
 -- | > typedef struct VkLayerProperties {
 --   >     char            layerName[VK_MAX_EXTENSION_NAME_SIZE];
@@ -33,17 +30,17 @@
 --   > } VkLayerProperties;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkLayerProperties VkLayerProperties registry at www.khronos.org>
-data VkLayerProperties = VkLayerProperties## Addr## ByteArray##
+type VkLayerProperties = VulkanStruct VkLayerProperties' -- ' closing tick for hsc2hs
 
+data VkLayerProperties' -- ' closing tick for hsc2hs
+
 instance Eq VkLayerProperties where
-        (VkLayerProperties## a _) == x@(VkLayerProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkLayerProperties where
-        (VkLayerProperties## a _) `compare` x@(VkLayerProperties## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -60,18 +57,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkLayerProperties where
-        unsafeAddr (VkLayerProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkLayerProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkLayerProperties## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkLayerProperties where
         type StructFields VkLayerProperties =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/MappedMemoryRange.hsc b/src-gen/Graphics/Vulkan/Types/Struct/MappedMemoryRange.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/MappedMemoryRange.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/MappedMemoryRange.hsc
@@ -8,17 +8,14 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.MappedMemoryRange
-       (VkMappedMemoryRange(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes          (VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles            (VkDeviceMemory)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkMappedMemoryRange, VkMappedMemoryRange') where -- ' closing tick for hsc2hs
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes          (VkDeviceSize)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Handles            (VkDeviceMemory)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkMappedMemoryRange {
 --   >     VkStructureType sType;
@@ -29,17 +26,17 @@
 --   > } VkMappedMemoryRange;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMappedMemoryRange VkMappedMemoryRange registry at www.khronos.org>
-data VkMappedMemoryRange = VkMappedMemoryRange## Addr## ByteArray##
+type VkMappedMemoryRange = VulkanStruct VkMappedMemoryRange' -- ' closing tick for hsc2hs
 
+data VkMappedMemoryRange' -- ' closing tick for hsc2hs
+
 instance Eq VkMappedMemoryRange where
-        (VkMappedMemoryRange## a _) == x@(VkMappedMemoryRange## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkMappedMemoryRange where
-        (VkMappedMemoryRange## a _) `compare` x@(VkMappedMemoryRange## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -56,18 +53,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMappedMemoryRange where
-        unsafeAddr (VkMappedMemoryRange## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMappedMemoryRange## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMappedMemoryRange## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkMappedMemoryRange where
         type StructFields VkMappedMemoryRange =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Memory.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Memory.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Memory.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Memory.hsc
@@ -8,35 +8,33 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Memory
-       (VkMemoryAllocateFlagsInfo(..), VkMemoryAllocateFlagsInfoKHR,
-        VkMemoryAllocateInfo(..), VkMemoryBarrier(..),
-        VkMemoryDedicatedAllocateInfo(..),
-        VkMemoryDedicatedAllocateInfoKHR,
-        VkMemoryDedicatedRequirements(..),
-        VkMemoryDedicatedRequirementsKHR, VkMemoryFdPropertiesKHR(..),
-        VkMemoryGetFdInfoKHR(..), VkMemoryHeap(..),
-        VkMemoryHostPointerPropertiesEXT(..), VkMemoryRequirements(..),
-        VkMemoryRequirements2(..), VkMemoryRequirements2KHR,
-        VkMemoryType(..))
+       (VkMemoryAllocateFlagsInfo, VkMemoryAllocateFlagsInfo', -- ' closing tick for hsc2hs
+        VkMemoryAllocateFlagsInfoKHR, VkMemoryAllocateInfo,
+        VkMemoryAllocateInfo', VkMemoryBarrier, VkMemoryBarrier',
+        VkMemoryDedicatedAllocateInfo, VkMemoryDedicatedAllocateInfo', -- ' closing tick for hsc2hs
+        VkMemoryDedicatedAllocateInfoKHR, VkMemoryDedicatedRequirements,
+        VkMemoryDedicatedRequirements', VkMemoryDedicatedRequirementsKHR, -- ' closing tick for hsc2hs
+        VkMemoryFdPropertiesKHR, VkMemoryFdPropertiesKHR', -- ' closing tick for hsc2hs
+        VkMemoryGetFdInfoKHR, VkMemoryGetFdInfoKHR', VkMemoryHeap, -- ' closing tick for hsc2hs
+        VkMemoryHeap', VkMemoryHostPointerPropertiesEXT, -- ' closing tick for hsc2hs
+        VkMemoryHostPointerPropertiesEXT', VkMemoryRequirements, -- ' closing tick for hsc2hs
+        VkMemoryRequirements', VkMemoryRequirements2, -- ' closing tick for hsc2hs
+        VkMemoryRequirements2', VkMemoryRequirements2KHR, VkMemoryType, -- ' closing tick for hsc2hs
+        VkMemoryType') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes          (VkBool32,
-                                                           VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.AccessFlags   (VkAccessFlags)
-import           Graphics.Vulkan.Types.Enum.External      (VkExternalMemoryHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.Memory        (VkMemoryAllocateFlags,
-                                                           VkMemoryHeapFlags,
-                                                           VkMemoryPropertyFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles            (VkBuffer,
-                                                           VkDeviceMemory,
-                                                           VkImage)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes          (VkBool32, VkDeviceSize)
+import Graphics.Vulkan.Types.Enum.AccessFlags   (VkAccessFlags)
+import Graphics.Vulkan.Types.Enum.External      (VkExternalMemoryHandleTypeFlagBits)
+import Graphics.Vulkan.Types.Enum.Memory        (VkMemoryAllocateFlags,
+                                                 VkMemoryHeapFlags,
+                                                 VkMemoryPropertyFlags)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Handles            (VkBuffer, VkDeviceMemory,
+                                                 VkImage)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkMemoryAllocateFlagsInfo {
 --   >     VkStructureType sType;
@@ -46,18 +44,18 @@
 --   > } VkMemoryAllocateFlagsInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfo registry at www.khronos.org>
-data VkMemoryAllocateFlagsInfo = VkMemoryAllocateFlagsInfo## Addr##
-                                                            ByteArray##
+type VkMemoryAllocateFlagsInfo =
+     VulkanStruct VkMemoryAllocateFlagsInfo' -- ' closing tick for hsc2hs
 
+data VkMemoryAllocateFlagsInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkMemoryAllocateFlagsInfo where
-        (VkMemoryAllocateFlagsInfo## a _) ==
-          x@(VkMemoryAllocateFlagsInfo## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkMemoryAllocateFlagsInfo where
-        (VkMemoryAllocateFlagsInfo## a _) `compare`
-          x@(VkMemoryAllocateFlagsInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -75,19 +73,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkMemoryAllocateFlagsInfo where
-        unsafeAddr (VkMemoryAllocateFlagsInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryAllocateFlagsInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryAllocateFlagsInfo## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkMemoryAllocateFlagsInfo where
         type StructFields VkMemoryAllocateFlagsInfo =
              '["sType", "pNext", "flags", "deviceMask"] -- ' closing tick for hsc2hs
@@ -251,17 +236,17 @@
 --   > } VkMemoryAllocateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryAllocateInfo VkMemoryAllocateInfo registry at www.khronos.org>
-data VkMemoryAllocateInfo = VkMemoryAllocateInfo## Addr## ByteArray##
+type VkMemoryAllocateInfo = VulkanStruct VkMemoryAllocateInfo' -- ' closing tick for hsc2hs
 
+data VkMemoryAllocateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkMemoryAllocateInfo where
-        (VkMemoryAllocateInfo## a _) == x@(VkMemoryAllocateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkMemoryAllocateInfo where
-        (VkMemoryAllocateInfo## a _) `compare` x@(VkMemoryAllocateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -279,18 +264,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkMemoryAllocateInfo where
-        unsafeAddr (VkMemoryAllocateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryAllocateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryAllocateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkMemoryAllocateInfo where
         type StructFields VkMemoryAllocateInfo =
              '["sType", "pNext", "allocationSize", "memoryTypeIndex"] -- ' closing tick for hsc2hs
@@ -447,17 +420,17 @@
 --   > } VkMemoryBarrier;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryBarrier VkMemoryBarrier registry at www.khronos.org>
-data VkMemoryBarrier = VkMemoryBarrier## Addr## ByteArray##
+type VkMemoryBarrier = VulkanStruct VkMemoryBarrier' -- ' closing tick for hsc2hs
 
+data VkMemoryBarrier' -- ' closing tick for hsc2hs
+
 instance Eq VkMemoryBarrier where
-        (VkMemoryBarrier## a _) == x@(VkMemoryBarrier## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkMemoryBarrier where
-        (VkMemoryBarrier## a _) `compare` x@(VkMemoryBarrier## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -475,18 +448,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkMemoryBarrier where
-        unsafeAddr (VkMemoryBarrier## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryBarrier## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryBarrier## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkMemoryBarrier where
         type StructFields VkMemoryBarrier =
              '["sType", "pNext", "srcAccessMask", "dstAccessMask"] -- ' closing tick for hsc2hs
@@ -639,19 +600,18 @@
 --   > } VkMemoryDedicatedAllocateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfo registry at www.khronos.org>
-data VkMemoryDedicatedAllocateInfo = VkMemoryDedicatedAllocateInfo## Addr##
-                                                                    ByteArray##
+type VkMemoryDedicatedAllocateInfo =
+     VulkanStruct VkMemoryDedicatedAllocateInfo' -- ' closing tick for hsc2hs
 
+data VkMemoryDedicatedAllocateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkMemoryDedicatedAllocateInfo where
-        (VkMemoryDedicatedAllocateInfo## a _) ==
-          x@(VkMemoryDedicatedAllocateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkMemoryDedicatedAllocateInfo where
-        (VkMemoryDedicatedAllocateInfo## a _) `compare`
-          x@(VkMemoryDedicatedAllocateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -670,20 +630,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkMemoryDedicatedAllocateInfo where
-        unsafeAddr (VkMemoryDedicatedAllocateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryDedicatedAllocateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryDedicatedAllocateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkMemoryDedicatedAllocateInfo where
         type StructFields VkMemoryDedicatedAllocateInfo =
              '["sType", "pNext", "image", "buffer"] -- ' closing tick for hsc2hs
@@ -848,19 +794,18 @@
 --   > } VkMemoryDedicatedRequirements;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryDedicatedRequirements VkMemoryDedicatedRequirements registry at www.khronos.org>
-data VkMemoryDedicatedRequirements = VkMemoryDedicatedRequirements## Addr##
-                                                                    ByteArray##
+type VkMemoryDedicatedRequirements =
+     VulkanStruct VkMemoryDedicatedRequirements' -- ' closing tick for hsc2hs
 
+data VkMemoryDedicatedRequirements' -- ' closing tick for hsc2hs
+
 instance Eq VkMemoryDedicatedRequirements where
-        (VkMemoryDedicatedRequirements## a _) ==
-          x@(VkMemoryDedicatedRequirements## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkMemoryDedicatedRequirements where
-        (VkMemoryDedicatedRequirements## a _) `compare`
-          x@(VkMemoryDedicatedRequirements## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -879,20 +824,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkMemoryDedicatedRequirements where
-        unsafeAddr (VkMemoryDedicatedRequirements## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryDedicatedRequirements## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryDedicatedRequirements##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkMemoryDedicatedRequirements where
         type StructFields VkMemoryDedicatedRequirements =
              '["sType", "pNext", "prefersDedicatedAllocation", -- ' closing tick for hsc2hs
@@ -1085,18 +1016,18 @@
 --   > } VkMemoryFdPropertiesKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryFdPropertiesKHR VkMemoryFdPropertiesKHR registry at www.khronos.org>
-data VkMemoryFdPropertiesKHR = VkMemoryFdPropertiesKHR## Addr##
-                                                        ByteArray##
+type VkMemoryFdPropertiesKHR =
+     VulkanStruct VkMemoryFdPropertiesKHR' -- ' closing tick for hsc2hs
 
+data VkMemoryFdPropertiesKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkMemoryFdPropertiesKHR where
-        (VkMemoryFdPropertiesKHR## a _) == x@(VkMemoryFdPropertiesKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkMemoryFdPropertiesKHR where
-        (VkMemoryFdPropertiesKHR## a _) `compare`
-          x@(VkMemoryFdPropertiesKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1114,18 +1045,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkMemoryFdPropertiesKHR where
-        unsafeAddr (VkMemoryFdPropertiesKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryFdPropertiesKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryFdPropertiesKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkMemoryFdPropertiesKHR where
         type StructFields VkMemoryFdPropertiesKHR =
              '["sType", "pNext", "memoryTypeBits"] -- ' closing tick for hsc2hs
@@ -1248,17 +1167,17 @@
 --   > } VkMemoryGetFdInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryGetFdInfoKHR VkMemoryGetFdInfoKHR registry at www.khronos.org>
-data VkMemoryGetFdInfoKHR = VkMemoryGetFdInfoKHR## Addr## ByteArray##
+type VkMemoryGetFdInfoKHR = VulkanStruct VkMemoryGetFdInfoKHR' -- ' closing tick for hsc2hs
 
+data VkMemoryGetFdInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkMemoryGetFdInfoKHR where
-        (VkMemoryGetFdInfoKHR## a _) == x@(VkMemoryGetFdInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkMemoryGetFdInfoKHR where
-        (VkMemoryGetFdInfoKHR## a _) `compare` x@(VkMemoryGetFdInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1276,18 +1195,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkMemoryGetFdInfoKHR where
-        unsafeAddr (VkMemoryGetFdInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryGetFdInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryGetFdInfoKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkMemoryGetFdInfoKHR where
         type StructFields VkMemoryGetFdInfoKHR =
              '["sType", "pNext", "memory", "handleType"] -- ' closing tick for hsc2hs
@@ -1442,17 +1349,17 @@
 --   > } VkMemoryHeap;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryHeap VkMemoryHeap registry at www.khronos.org>
-data VkMemoryHeap = VkMemoryHeap## Addr## ByteArray##
+type VkMemoryHeap = VulkanStruct VkMemoryHeap' -- ' closing tick for hsc2hs
 
+data VkMemoryHeap' -- ' closing tick for hsc2hs
+
 instance Eq VkMemoryHeap where
-        (VkMemoryHeap## a _) == x@(VkMemoryHeap## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkMemoryHeap where
-        (VkMemoryHeap## a _) `compare` x@(VkMemoryHeap## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1470,18 +1377,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkMemoryHeap where
-        unsafeAddr (VkMemoryHeap## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryHeap## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryHeap## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkMemoryHeap where
         type StructFields VkMemoryHeap = '["size", "flags"] -- ' closing tick for hsc2hs
         type CUnionType VkMemoryHeap = 'False -- ' closing tick for hsc2hs
@@ -1563,20 +1458,18 @@
 --   > } VkMemoryHostPointerPropertiesEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryHostPointerPropertiesEXT VkMemoryHostPointerPropertiesEXT registry at www.khronos.org>
-data VkMemoryHostPointerPropertiesEXT = VkMemoryHostPointerPropertiesEXT## Addr##
-                                                                          ByteArray##
+type VkMemoryHostPointerPropertiesEXT =
+     VulkanStruct VkMemoryHostPointerPropertiesEXT' -- ' closing tick for hsc2hs
 
+data VkMemoryHostPointerPropertiesEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkMemoryHostPointerPropertiesEXT where
-        (VkMemoryHostPointerPropertiesEXT## a _) ==
-          x@(VkMemoryHostPointerPropertiesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkMemoryHostPointerPropertiesEXT where
-        (VkMemoryHostPointerPropertiesEXT## a _) `compare`
-          x@(VkMemoryHostPointerPropertiesEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1595,20 +1488,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkMemoryHostPointerPropertiesEXT where
-        unsafeAddr (VkMemoryHostPointerPropertiesEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryHostPointerPropertiesEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryHostPointerPropertiesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkMemoryHostPointerPropertiesEXT where
         type StructFields VkMemoryHostPointerPropertiesEXT =
              '["sType", "pNext", "memoryTypeBits"] -- ' closing tick for hsc2hs
@@ -1741,17 +1620,17 @@
 --   > } VkMemoryRequirements;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryRequirements VkMemoryRequirements registry at www.khronos.org>
-data VkMemoryRequirements = VkMemoryRequirements## Addr## ByteArray##
+type VkMemoryRequirements = VulkanStruct VkMemoryRequirements' -- ' closing tick for hsc2hs
 
+data VkMemoryRequirements' -- ' closing tick for hsc2hs
+
 instance Eq VkMemoryRequirements where
-        (VkMemoryRequirements## a _) == x@(VkMemoryRequirements## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkMemoryRequirements where
-        (VkMemoryRequirements## a _) `compare` x@(VkMemoryRequirements## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1769,18 +1648,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkMemoryRequirements where
-        unsafeAddr (VkMemoryRequirements## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryRequirements## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryRequirements## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkMemoryRequirements where
         type StructFields VkMemoryRequirements =
              '["size", "alignment", "memoryTypeBits"] -- ' closing tick for hsc2hs
@@ -1901,18 +1768,17 @@
 --   > } VkMemoryRequirements2;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryRequirements2 VkMemoryRequirements2 registry at www.khronos.org>
-data VkMemoryRequirements2 = VkMemoryRequirements2## Addr##
-                                                    ByteArray##
+type VkMemoryRequirements2 = VulkanStruct VkMemoryRequirements2' -- ' closing tick for hsc2hs
 
+data VkMemoryRequirements2' -- ' closing tick for hsc2hs
+
 instance Eq VkMemoryRequirements2 where
-        (VkMemoryRequirements2## a _) == x@(VkMemoryRequirements2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkMemoryRequirements2 where
-        (VkMemoryRequirements2## a _) `compare`
-          x@(VkMemoryRequirements2## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1930,18 +1796,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkMemoryRequirements2 where
-        unsafeAddr (VkMemoryRequirements2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryRequirements2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryRequirements2## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkMemoryRequirements2 where
         type StructFields VkMemoryRequirements2 =
              '["sType", "pNext", "memoryRequirements"] -- ' closing tick for hsc2hs
@@ -2067,17 +1921,17 @@
 --   > } VkMemoryType;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryType VkMemoryType registry at www.khronos.org>
-data VkMemoryType = VkMemoryType## Addr## ByteArray##
+type VkMemoryType = VulkanStruct VkMemoryType' -- ' closing tick for hsc2hs
 
+data VkMemoryType' -- ' closing tick for hsc2hs
+
 instance Eq VkMemoryType where
-        (VkMemoryType## a _) == x@(VkMemoryType## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkMemoryType where
-        (VkMemoryType## a _) `compare` x@(VkMemoryType## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2094,18 +1948,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMemoryType where
-        unsafeAddr (VkMemoryType## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryType## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryType## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkMemoryType where
         type StructFields VkMemoryType = '["propertyFlags", "heapIndex"] -- ' closing tick for hsc2hs
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/MultisamplePropertiesEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/MultisamplePropertiesEXT.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/MultisamplePropertiesEXT.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/MultisamplePropertiesEXT.hsc
@@ -8,16 +8,13 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.MultisamplePropertiesEXT
-       (VkMultisamplePropertiesEXT(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.Extent      (VkExtent2D)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkMultisamplePropertiesEXT, VkMultisamplePropertiesEXT') where -- ' closing tick for hsc2hs
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Struct.Extent      (VkExtent2D)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkMultisamplePropertiesEXT {
 --   >     VkStructureType sType;
@@ -26,19 +23,18 @@
 --   > } VkMultisamplePropertiesEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMultisamplePropertiesEXT VkMultisamplePropertiesEXT registry at www.khronos.org>
-data VkMultisamplePropertiesEXT = VkMultisamplePropertiesEXT## Addr##
-                                                              ByteArray##
+type VkMultisamplePropertiesEXT =
+     VulkanStruct VkMultisamplePropertiesEXT' -- ' closing tick for hsc2hs
 
+data VkMultisamplePropertiesEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkMultisamplePropertiesEXT where
-        (VkMultisamplePropertiesEXT## a _) ==
-          x@(VkMultisamplePropertiesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkMultisamplePropertiesEXT where
-        (VkMultisamplePropertiesEXT## a _) `compare`
-          x@(VkMultisamplePropertiesEXT## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -55,20 +51,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMultisamplePropertiesEXT where
-        unsafeAddr (VkMultisamplePropertiesEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMultisamplePropertiesEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMultisamplePropertiesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkMultisamplePropertiesEXT where
         type StructFields VkMultisamplePropertiesEXT =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/ObjectTable.hsc b/src-gen/Graphics/Vulkan/Types/Struct/ObjectTable.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/ObjectTable.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/ObjectTable.hsc
@@ -8,28 +8,27 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.ObjectTable
-       (VkObjectTableCreateInfoNVX(..),
-        VkObjectTableDescriptorSetEntryNVX(..), VkObjectTableEntryNVX(..),
-        VkObjectTableIndexBufferEntryNVX(..),
-        VkObjectTablePipelineEntryNVX(..),
-        VkObjectTablePushConstantEntryNVX(..),
-        VkObjectTableVertexBufferEntryNVX(..))
+       (VkObjectTableCreateInfoNVX, VkObjectTableCreateInfoNVX', -- ' closing tick for hsc2hs
+        VkObjectTableDescriptorSetEntryNVX,
+        VkObjectTableDescriptorSetEntryNVX', VkObjectTableEntryNVX, -- ' closing tick for hsc2hs
+        VkObjectTableEntryNVX', VkObjectTableIndexBufferEntryNVX, -- ' closing tick for hsc2hs
+        VkObjectTableIndexBufferEntryNVX', VkObjectTablePipelineEntryNVX, -- ' closing tick for hsc2hs
+        VkObjectTablePipelineEntryNVX', VkObjectTablePushConstantEntryNVX, -- ' closing tick for hsc2hs
+        VkObjectTablePushConstantEntryNVX', -- ' closing tick for hsc2hs
+        VkObjectTableVertexBufferEntryNVX,
+        VkObjectTableVertexBufferEntryNVX') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.IndexType     (VkIndexType)
-import           Graphics.Vulkan.Types.Enum.Object        (VkObjectEntryTypeNVX, VkObjectEntryUsageFlagsNVX)
-import           Graphics.Vulkan.Types.Enum.Shader        (VkShaderStageFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles            (VkBuffer,
-                                                           VkDescriptorSet,
-                                                           VkPipeline,
-                                                           VkPipelineLayout)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.IndexType     (VkIndexType)
+import Graphics.Vulkan.Types.Enum.Object        (VkObjectEntryTypeNVX,
+                                                 VkObjectEntryUsageFlagsNVX)
+import Graphics.Vulkan.Types.Enum.Shader        (VkShaderStageFlags)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Handles            (VkBuffer, VkDescriptorSet,
+                                                 VkPipeline, VkPipelineLayout)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkObjectTableCreateInfoNVX {
 --   >     VkStructureType sType;
@@ -46,19 +45,18 @@
 --   > } VkObjectTableCreateInfoNVX;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkObjectTableCreateInfoNVX VkObjectTableCreateInfoNVX registry at www.khronos.org>
-data VkObjectTableCreateInfoNVX = VkObjectTableCreateInfoNVX## Addr##
-                                                              ByteArray##
+type VkObjectTableCreateInfoNVX =
+     VulkanStruct VkObjectTableCreateInfoNVX' -- ' closing tick for hsc2hs
 
+data VkObjectTableCreateInfoNVX' -- ' closing tick for hsc2hs
+
 instance Eq VkObjectTableCreateInfoNVX where
-        (VkObjectTableCreateInfoNVX## a _) ==
-          x@(VkObjectTableCreateInfoNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkObjectTableCreateInfoNVX where
-        (VkObjectTableCreateInfoNVX## a _) `compare`
-          x@(VkObjectTableCreateInfoNVX## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -76,20 +74,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkObjectTableCreateInfoNVX where
-        unsafeAddr (VkObjectTableCreateInfoNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkObjectTableCreateInfoNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkObjectTableCreateInfoNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkObjectTableCreateInfoNVX where
         type StructFields VkObjectTableCreateInfoNVX =
              '["sType", "pNext", "objectCount", "pObjectEntryTypes", -- ' closing tick for hsc2hs
@@ -596,20 +580,18 @@
 --   > } VkObjectTableDescriptorSetEntryNVX;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkObjectTableDescriptorSetEntryNVX VkObjectTableDescriptorSetEntryNVX registry at www.khronos.org>
-data VkObjectTableDescriptorSetEntryNVX = VkObjectTableDescriptorSetEntryNVX## Addr##
-                                                                              ByteArray##
+type VkObjectTableDescriptorSetEntryNVX =
+     VulkanStruct VkObjectTableDescriptorSetEntryNVX' -- ' closing tick for hsc2hs
 
+data VkObjectTableDescriptorSetEntryNVX' -- ' closing tick for hsc2hs
+
 instance Eq VkObjectTableDescriptorSetEntryNVX where
-        (VkObjectTableDescriptorSetEntryNVX## a _) ==
-          x@(VkObjectTableDescriptorSetEntryNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkObjectTableDescriptorSetEntryNVX where
-        (VkObjectTableDescriptorSetEntryNVX## a _) `compare`
-          x@(VkObjectTableDescriptorSetEntryNVX## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -628,20 +610,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkObjectTableDescriptorSetEntryNVX where
-        unsafeAddr (VkObjectTableDescriptorSetEntryNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkObjectTableDescriptorSetEntryNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkObjectTableDescriptorSetEntryNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkObjectTableDescriptorSetEntryNVX where
         type StructFields VkObjectTableDescriptorSetEntryNVX =
              '["type", "flags", "pipelineLayout", "descriptorSet"] -- ' closing tick for hsc2hs
@@ -821,18 +789,17 @@
 --   > } VkObjectTableEntryNVX;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkObjectTableEntryNVX VkObjectTableEntryNVX registry at www.khronos.org>
-data VkObjectTableEntryNVX = VkObjectTableEntryNVX## Addr##
-                                                    ByteArray##
+type VkObjectTableEntryNVX = VulkanStruct VkObjectTableEntryNVX' -- ' closing tick for hsc2hs
 
+data VkObjectTableEntryNVX' -- ' closing tick for hsc2hs
+
 instance Eq VkObjectTableEntryNVX where
-        (VkObjectTableEntryNVX## a _) == x@(VkObjectTableEntryNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkObjectTableEntryNVX where
-        (VkObjectTableEntryNVX## a _) `compare`
-          x@(VkObjectTableEntryNVX## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -850,18 +817,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkObjectTableEntryNVX where
-        unsafeAddr (VkObjectTableEntryNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkObjectTableEntryNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkObjectTableEntryNVX## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkObjectTableEntryNVX where
         type StructFields VkObjectTableEntryNVX = '["type", "flags"] -- ' closing tick for hsc2hs
         type CUnionType VkObjectTableEntryNVX = 'False -- ' closing tick for hsc2hs
@@ -948,20 +903,18 @@
 --   > } VkObjectTableIndexBufferEntryNVX;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkObjectTableIndexBufferEntryNVX VkObjectTableIndexBufferEntryNVX registry at www.khronos.org>
-data VkObjectTableIndexBufferEntryNVX = VkObjectTableIndexBufferEntryNVX## Addr##
-                                                                          ByteArray##
+type VkObjectTableIndexBufferEntryNVX =
+     VulkanStruct VkObjectTableIndexBufferEntryNVX' -- ' closing tick for hsc2hs
 
+data VkObjectTableIndexBufferEntryNVX' -- ' closing tick for hsc2hs
+
 instance Eq VkObjectTableIndexBufferEntryNVX where
-        (VkObjectTableIndexBufferEntryNVX## a _) ==
-          x@(VkObjectTableIndexBufferEntryNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkObjectTableIndexBufferEntryNVX where
-        (VkObjectTableIndexBufferEntryNVX## a _) `compare`
-          x@(VkObjectTableIndexBufferEntryNVX## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -980,20 +933,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkObjectTableIndexBufferEntryNVX where
-        unsafeAddr (VkObjectTableIndexBufferEntryNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkObjectTableIndexBufferEntryNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkObjectTableIndexBufferEntryNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkObjectTableIndexBufferEntryNVX where
         type StructFields VkObjectTableIndexBufferEntryNVX =
              '["type", "flags", "buffer", "indexType"] -- ' closing tick for hsc2hs
@@ -1159,19 +1098,18 @@
 --   > } VkObjectTablePipelineEntryNVX;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkObjectTablePipelineEntryNVX VkObjectTablePipelineEntryNVX registry at www.khronos.org>
-data VkObjectTablePipelineEntryNVX = VkObjectTablePipelineEntryNVX## Addr##
-                                                                    ByteArray##
+type VkObjectTablePipelineEntryNVX =
+     VulkanStruct VkObjectTablePipelineEntryNVX' -- ' closing tick for hsc2hs
 
+data VkObjectTablePipelineEntryNVX' -- ' closing tick for hsc2hs
+
 instance Eq VkObjectTablePipelineEntryNVX where
-        (VkObjectTablePipelineEntryNVX## a _) ==
-          x@(VkObjectTablePipelineEntryNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkObjectTablePipelineEntryNVX where
-        (VkObjectTablePipelineEntryNVX## a _) `compare`
-          x@(VkObjectTablePipelineEntryNVX## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1190,20 +1128,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkObjectTablePipelineEntryNVX where
-        unsafeAddr (VkObjectTablePipelineEntryNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkObjectTablePipelineEntryNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkObjectTablePipelineEntryNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkObjectTablePipelineEntryNVX where
         type StructFields VkObjectTablePipelineEntryNVX =
              '["type", "flags", "pipeline"] -- ' closing tick for hsc2hs
@@ -1331,20 +1255,18 @@
 --   > } VkObjectTablePushConstantEntryNVX;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkObjectTablePushConstantEntryNVX VkObjectTablePushConstantEntryNVX registry at www.khronos.org>
-data VkObjectTablePushConstantEntryNVX = VkObjectTablePushConstantEntryNVX## Addr##
-                                                                            ByteArray##
+type VkObjectTablePushConstantEntryNVX =
+     VulkanStruct VkObjectTablePushConstantEntryNVX' -- ' closing tick for hsc2hs
 
+data VkObjectTablePushConstantEntryNVX' -- ' closing tick for hsc2hs
+
 instance Eq VkObjectTablePushConstantEntryNVX where
-        (VkObjectTablePushConstantEntryNVX## a _) ==
-          x@(VkObjectTablePushConstantEntryNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkObjectTablePushConstantEntryNVX where
-        (VkObjectTablePushConstantEntryNVX## a _) `compare`
-          x@(VkObjectTablePushConstantEntryNVX## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1363,20 +1285,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkObjectTablePushConstantEntryNVX where
-        unsafeAddr (VkObjectTablePushConstantEntryNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkObjectTablePushConstantEntryNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkObjectTablePushConstantEntryNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkObjectTablePushConstantEntryNVX where
         type StructFields VkObjectTablePushConstantEntryNVX =
              '["type", "flags", "pipelineLayout", "stageFlags"] -- ' closing tick for hsc2hs
@@ -1550,20 +1458,18 @@
 --   > } VkObjectTableVertexBufferEntryNVX;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkObjectTableVertexBufferEntryNVX VkObjectTableVertexBufferEntryNVX registry at www.khronos.org>
-data VkObjectTableVertexBufferEntryNVX = VkObjectTableVertexBufferEntryNVX## Addr##
-                                                                            ByteArray##
+type VkObjectTableVertexBufferEntryNVX =
+     VulkanStruct VkObjectTableVertexBufferEntryNVX' -- ' closing tick for hsc2hs
 
+data VkObjectTableVertexBufferEntryNVX' -- ' closing tick for hsc2hs
+
 instance Eq VkObjectTableVertexBufferEntryNVX where
-        (VkObjectTableVertexBufferEntryNVX## a _) ==
-          x@(VkObjectTableVertexBufferEntryNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkObjectTableVertexBufferEntryNVX where
-        (VkObjectTableVertexBufferEntryNVX## a _) `compare`
-          x@(VkObjectTableVertexBufferEntryNVX## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1581,20 +1487,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkObjectTableVertexBufferEntryNVX where
-        unsafeAddr (VkObjectTableVertexBufferEntryNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkObjectTableVertexBufferEntryNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkObjectTableVertexBufferEntryNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkObjectTableVertexBufferEntryNVX where
         type StructFields VkObjectTableVertexBufferEntryNVX =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Offset.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Offset.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Offset.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Offset.hsc
@@ -8,14 +8,11 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Offset
-       (VkOffset2D(..), VkOffset3D(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Base                         (Addr##, ByteArray##,
-                                                   byteArrayContents##,
-                                                   plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+       (VkOffset2D, VkOffset2D', VkOffset3D, VkOffset3D') where
+import Foreign.Storable                 (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import System.IO.Unsafe                 (unsafeDupablePerformIO)
 
 -- | > typedef struct VkOffset2D {
 --   >     int32_t        x;
@@ -23,17 +20,17 @@
 --   > } VkOffset2D;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkOffset2D VkOffset2D registry at www.khronos.org>
-data VkOffset2D = VkOffset2D## Addr## ByteArray##
+type VkOffset2D = VulkanStruct VkOffset2D' -- ' closing tick for hsc2hs
 
+data VkOffset2D' -- ' closing tick for hsc2hs
+
 instance Eq VkOffset2D where
-        (VkOffset2D## a _) == x@(VkOffset2D## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkOffset2D where
-        (VkOffset2D## a _) `compare` x@(VkOffset2D## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -51,18 +48,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkOffset2D where
-        unsafeAddr (VkOffset2D## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkOffset2D## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkOffset2D## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkOffset2D where
         type StructFields VkOffset2D = '["x", "y"] -- ' closing tick for hsc2hs
         type CUnionType VkOffset2D = 'False -- ' closing tick for hsc2hs
@@ -136,17 +121,17 @@
 --   > } VkOffset3D;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkOffset3D VkOffset3D registry at www.khronos.org>
-data VkOffset3D = VkOffset3D## Addr## ByteArray##
+type VkOffset3D = VulkanStruct VkOffset3D' -- ' closing tick for hsc2hs
 
+data VkOffset3D' -- ' closing tick for hsc2hs
+
 instance Eq VkOffset3D where
-        (VkOffset3D## a _) == x@(VkOffset3D## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkOffset3D where
-        (VkOffset3D## a _) `compare` x@(VkOffset3D## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -163,18 +148,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkOffset3D where
-        unsafeAddr (VkOffset3D## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkOffset3D## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkOffset3D## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkOffset3D where
         type StructFields VkOffset3D = '["x", "y", "z"] -- ' closing tick for hsc2hs
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PastPresentationTimingGOOGLE.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PastPresentationTimingGOOGLE.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/PastPresentationTimingGOOGLE.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PastPresentationTimingGOOGLE.hsc
@@ -8,14 +8,12 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.PastPresentationTimingGOOGLE
-       (VkPastPresentationTimingGOOGLE(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Base                         (Addr##, ByteArray##,
-                                                   byteArrayContents##,
-                                                   plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+       (VkPastPresentationTimingGOOGLE, VkPastPresentationTimingGOOGLE') -- ' closing tick for hsc2hs
+       where
+import Foreign.Storable                 (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import System.IO.Unsafe                 (unsafeDupablePerformIO)
 
 -- | > typedef struct VkPastPresentationTimingGOOGLE {
 --   >     uint32_t                         presentID;
@@ -26,19 +24,18 @@
 --   > } VkPastPresentationTimingGOOGLE;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPastPresentationTimingGOOGLE VkPastPresentationTimingGOOGLE registry at www.khronos.org>
-data VkPastPresentationTimingGOOGLE = VkPastPresentationTimingGOOGLE## Addr##
-                                                                      ByteArray##
+type VkPastPresentationTimingGOOGLE =
+     VulkanStruct VkPastPresentationTimingGOOGLE' -- ' closing tick for hsc2hs
 
+data VkPastPresentationTimingGOOGLE' -- ' closing tick for hsc2hs
+
 instance Eq VkPastPresentationTimingGOOGLE where
-        (VkPastPresentationTimingGOOGLE## a _) ==
-          x@(VkPastPresentationTimingGOOGLE## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPastPresentationTimingGOOGLE where
-        (VkPastPresentationTimingGOOGLE## a _) `compare`
-          x@(VkPastPresentationTimingGOOGLE## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -56,20 +53,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPastPresentationTimingGOOGLE where
-        unsafeAddr (VkPastPresentationTimingGOOGLE## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPastPresentationTimingGOOGLE## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPastPresentationTimingGOOGLE##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkPastPresentationTimingGOOGLE where
         type StructFields VkPastPresentationTimingGOOGLE =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PhysicalDevice.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PhysicalDevice.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/PhysicalDevice.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PhysicalDevice.hsc
@@ -12,19504 +12,18837 @@
 {-# LANGUAGE TypeFamilies          #-}
 {-# LANGUAGE UndecidableInstances  #-}
 module Graphics.Vulkan.Types.Struct.PhysicalDevice
-       (VkPhysicalDevice16BitStorageFeatures(..),
-        VkPhysicalDevice16BitStorageFeaturesKHR,
-        VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(..),
-        VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(..),
-        VkPhysicalDeviceConservativeRasterizationPropertiesEXT(..),
-        VkPhysicalDeviceDescriptorIndexingFeaturesEXT(..),
-        VkPhysicalDeviceDescriptorIndexingPropertiesEXT(..),
-        VkPhysicalDeviceDiscardRectanglePropertiesEXT(..),
-        VkPhysicalDeviceExternalBufferInfo(..),
-        VkPhysicalDeviceExternalBufferInfoKHR,
-        VkPhysicalDeviceExternalFenceInfo(..),
-        VkPhysicalDeviceExternalFenceInfoKHR,
-        VkPhysicalDeviceExternalImageFormatInfo(..),
-        VkPhysicalDeviceExternalImageFormatInfoKHR,
-        VkPhysicalDeviceExternalMemoryHostPropertiesEXT(..),
-        VkPhysicalDeviceExternalSemaphoreInfo(..),
-        VkPhysicalDeviceExternalSemaphoreInfoKHR,
-        VkPhysicalDeviceFeatures2(..), VkPhysicalDeviceFeatures2KHR,
-        VkPhysicalDeviceGroupProperties(..),
-        VkPhysicalDeviceGroupPropertiesKHR,
-        VkPhysicalDeviceIDProperties(..), VkPhysicalDeviceIDPropertiesKHR,
-        VkPhysicalDeviceImageFormatInfo2(..),
-        VkPhysicalDeviceImageFormatInfo2KHR, VkPhysicalDeviceLimits(..),
-        VkPhysicalDeviceMaintenance3Properties(..),
-        VkPhysicalDeviceMaintenance3PropertiesKHR,
-        VkPhysicalDeviceMemoryProperties(..),
-        VkPhysicalDeviceMemoryProperties2(..),
-        VkPhysicalDeviceMemoryProperties2KHR,
-        VkPhysicalDeviceMultiviewFeatures(..),
-        VkPhysicalDeviceMultiviewFeaturesKHR,
-        VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(..),
-        VkPhysicalDeviceMultiviewProperties(..),
-        VkPhysicalDeviceMultiviewPropertiesKHR,
-        VkPhysicalDevicePointClippingProperties(..),
-        VkPhysicalDevicePointClippingPropertiesKHR,
-        VkPhysicalDeviceProperties(..), VkPhysicalDeviceProperties2(..),
-        VkPhysicalDeviceProperties2KHR,
-        VkPhysicalDeviceProtectedMemoryFeatures(..),
-        VkPhysicalDeviceProtectedMemoryProperties(..),
-        VkPhysicalDevicePushDescriptorPropertiesKHR(..),
-        VkPhysicalDeviceSampleLocationsPropertiesEXT(..),
-        VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(..),
-        VkPhysicalDeviceSamplerYcbcrConversionFeatures(..),
-        VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR,
-        VkPhysicalDeviceShaderCorePropertiesAMD(..),
-        VkPhysicalDeviceShaderDrawParameterFeatures(..),
-        VkPhysicalDeviceSparseImageFormatInfo2(..),
-        VkPhysicalDeviceSparseImageFormatInfo2KHR,
-        VkPhysicalDeviceSparseProperties(..),
-        VkPhysicalDeviceSubgroupProperties(..),
-        VkPhysicalDeviceSurfaceInfo2KHR(..),
-        VkPhysicalDeviceVariablePointerFeatures(..),
-        VkPhysicalDeviceVariablePointerFeaturesKHR,
-        VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(..))
-       where
-import           Foreign.Storable                                    (Storable (..))
-import           GHC.Base                                            (Addr##,
-                                                                      ByteArray##,
-                                                                      Proxy##,
-                                                                      byteArrayContents##,
-                                                                      plusAddr##,
-                                                                      proxy##)
-import           GHC.TypeLits                                        (KnownNat,
-                                                                      natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Constants                           (VK_LUID_SIZE,
-                                                                      pattern VK_LUID_SIZE,
-                                                                      VK_MAX_DEVICE_GROUP_SIZE,
-                                                                      pattern VK_MAX_DEVICE_GROUP_SIZE,
-                                                                      VK_MAX_MEMORY_HEAPS,
-                                                                      pattern VK_MAX_MEMORY_HEAPS,
-                                                                      VK_MAX_MEMORY_TYPES,
-                                                                      pattern VK_MAX_MEMORY_TYPES,
-                                                                      VK_MAX_PHYSICAL_DEVICE_NAME_SIZE,
-                                                                      pattern VK_MAX_PHYSICAL_DEVICE_NAME_SIZE,
-                                                                      VK_UUID_SIZE,
-                                                                      pattern VK_UUID_SIZE)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                     (VkBool32, VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.Buffer                   (VkBufferCreateFlags,
-                                                                      VkBufferUsageFlags)
-import           Graphics.Vulkan.Types.Enum.External                 (VkExternalFenceHandleTypeFlagBits,
-                                                                      VkExternalMemoryHandleTypeFlagBits,
-                                                                      VkExternalSemaphoreHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.Format                   (VkFormat)
-import           Graphics.Vulkan.Types.Enum.Image                    (VkImageCreateFlags,
-                                                                      VkImageTiling,
-                                                                      VkImageType,
-                                                                      VkImageUsageFlags)
-import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType       (VkPhysicalDeviceType)
-import           Graphics.Vulkan.Types.Enum.PointClippingBehavior    (VkPointClippingBehavior)
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags         (VkSampleCountFlagBits,
-                                                                      VkSampleCountFlags)
-import           Graphics.Vulkan.Types.Enum.Shader                   (VkShaderStageFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType            (VkStructureType)
-import           Graphics.Vulkan.Types.Enum.SubgroupFeatureFlags     (VkSubgroupFeatureFlags)
-import           Graphics.Vulkan.Types.Handles                       (VkPhysicalDevice,
-                                                                      VkSurfaceKHR)
-import           Graphics.Vulkan.Types.Struct.Device                 (VkDeviceCreateInfo)
-import           Graphics.Vulkan.Types.Struct.Extent                 (VkExtent2D)
-import           Graphics.Vulkan.Types.Struct.Memory                 (VkMemoryHeap,
-                                                                      VkMemoryType)
-import           Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures (VkPhysicalDeviceFeatures)
-import           System.IO.Unsafe                                    (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDevice16BitStorageFeatures {
---   >     VkStructureType sType;
---   >     void*      pNext;
---   >     VkBool32                         storageBuffer16BitAccess;
---   >     VkBool32                         uniformAndStorageBuffer16BitAccess;
---   >     VkBool32                         storagePushConstant16;
---   >     VkBool32                         storageInputOutput16;
---   > } VkPhysicalDevice16BitStorageFeatures;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeatures registry at www.khronos.org>
-data VkPhysicalDevice16BitStorageFeatures = VkPhysicalDevice16BitStorageFeatures## Addr##
-                                                                                  ByteArray##
-
-instance Eq VkPhysicalDevice16BitStorageFeatures where
-        (VkPhysicalDevice16BitStorageFeatures## a _) ==
-          x@(VkPhysicalDevice16BitStorageFeatures## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDevice16BitStorageFeatures where
-        (VkPhysicalDevice16BitStorageFeatures## a _) `compare`
-          x@(VkPhysicalDevice16BitStorageFeatures## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDevice16BitStorageFeatures where
-        sizeOf ~_
-          = #{size VkPhysicalDevice16BitStorageFeatures}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDevice16BitStorageFeatures}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDevice16BitStorageFeatures
-         where
-        unsafeAddr (VkPhysicalDevice16BitStorageFeatures## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDevice16BitStorageFeatures## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDevice16BitStorageFeatures##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDevice16BitStorageFeatures where
-        type StructFields VkPhysicalDevice16BitStorageFeatures =
-             '["sType", "pNext", "storageBuffer16BitAccess", -- ' closing tick for hsc2hs
-               "uniformAndStorageBuffer16BitAccess", "storagePushConstant16",
-               "storageInputOutput16"]
-        type CUnionType VkPhysicalDevice16BitStorageFeatures = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDevice16BitStorageFeatures = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDevice16BitStorageFeatures =
-             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDevice16BitStorageFeatures where
-        type FieldType "sType" VkPhysicalDevice16BitStorageFeatures =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDevice16BitStorageFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDevice16BitStorageFeatures =
-             #{offset VkPhysicalDevice16BitStorageFeatures, sType}
-        type FieldIsArray "sType" VkPhysicalDevice16BitStorageFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevice16BitStorageFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDevice16BitStorageFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDevice16BitStorageFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDevice16BitStorageFeatures where
-        type FieldType "pNext" VkPhysicalDevice16BitStorageFeatures =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDevice16BitStorageFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDevice16BitStorageFeatures =
-             #{offset VkPhysicalDevice16BitStorageFeatures, pNext}
-        type FieldIsArray "pNext" VkPhysicalDevice16BitStorageFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevice16BitStorageFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDevice16BitStorageFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDevice16BitStorageFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "storageBuffer16BitAccess"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        type FieldType "storageBuffer16BitAccess"
-               VkPhysicalDevice16BitStorageFeatures
-             = VkBool32
-        type FieldOptional "storageBuffer16BitAccess"
-               VkPhysicalDevice16BitStorageFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "storageBuffer16BitAccess"
-               VkPhysicalDevice16BitStorageFeatures
-             =
-             #{offset VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess}
-        type FieldIsArray "storageBuffer16BitAccess"
-               VkPhysicalDevice16BitStorageFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "storageBuffer16BitAccess"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "storageBuffer16BitAccess"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess}
-
-instance {-# OVERLAPPING #-}
-         HasField "uniformAndStorageBuffer16BitAccess"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        type FieldType "uniformAndStorageBuffer16BitAccess"
-               VkPhysicalDevice16BitStorageFeatures
-             = VkBool32
-        type FieldOptional "uniformAndStorageBuffer16BitAccess"
-               VkPhysicalDevice16BitStorageFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "uniformAndStorageBuffer16BitAccess"
-               VkPhysicalDevice16BitStorageFeatures
-             =
-             #{offset VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess}
-        type FieldIsArray "uniformAndStorageBuffer16BitAccess"
-               VkPhysicalDevice16BitStorageFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "uniformAndStorageBuffer16BitAccess"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "uniformAndStorageBuffer16BitAccess"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess}
-
-instance {-# OVERLAPPING #-}
-         HasField "storagePushConstant16"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        type FieldType "storagePushConstant16"
-               VkPhysicalDevice16BitStorageFeatures
-             = VkBool32
-        type FieldOptional "storagePushConstant16"
-               VkPhysicalDevice16BitStorageFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "storagePushConstant16"
-               VkPhysicalDevice16BitStorageFeatures
-             =
-             #{offset VkPhysicalDevice16BitStorageFeatures, storagePushConstant16}
-        type FieldIsArray "storagePushConstant16"
-               VkPhysicalDevice16BitStorageFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevice16BitStorageFeatures, storagePushConstant16}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "storagePushConstant16"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, storagePushConstant16})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storagePushConstant16}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "storagePushConstant16"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storagePushConstant16}
-
-instance {-# OVERLAPPING #-}
-         HasField "storageInputOutput16"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        type FieldType "storageInputOutput16"
-               VkPhysicalDevice16BitStorageFeatures
-             = VkBool32
-        type FieldOptional "storageInputOutput16"
-               VkPhysicalDevice16BitStorageFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "storageInputOutput16"
-               VkPhysicalDevice16BitStorageFeatures
-             =
-             #{offset VkPhysicalDevice16BitStorageFeatures, storageInputOutput16}
-        type FieldIsArray "storageInputOutput16"
-               VkPhysicalDevice16BitStorageFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevice16BitStorageFeatures, storageInputOutput16}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "storageInputOutput16"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, storageInputOutput16})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storageInputOutput16}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "storageInputOutput16"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storageInputOutput16}
-
-instance Show VkPhysicalDevice16BitStorageFeatures where
-        showsPrec d x
-          = showString "VkPhysicalDevice16BitStorageFeatures {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "storageBuffer16BitAccess = " .
-                            showsPrec d (getField @"storageBuffer16BitAccess" x) .
-                              showString ", " .
-                                showString "uniformAndStorageBuffer16BitAccess = " .
-                                  showsPrec d (getField @"uniformAndStorageBuffer16BitAccess" x) .
-                                    showString ", " .
-                                      showString "storagePushConstant16 = " .
-                                        showsPrec d (getField @"storagePushConstant16" x) .
-                                          showString ", " .
-                                            showString "storageInputOutput16 = " .
-                                              showsPrec d (getField @"storageInputOutput16" x) .
-                                                showChar '}'
-
--- | Alias for `VkPhysicalDevice16BitStorageFeatures`
-type VkPhysicalDevice16BitStorageFeaturesKHR =
-     VkPhysicalDevice16BitStorageFeatures
-
--- | > typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkBool32                         advancedBlendCoherentOperations;
---   > } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT registry at www.khronos.org>
-data VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## Addr##
-                                                                                                            ByteArray##
-
-instance Eq VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT where
-        (VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## a _) ==
-          x@(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        (VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## a _) `compare`
-          x@(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        unsafeAddr (VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## a _)
-          = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        type StructFields VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = '["sType", "pNext", "advancedBlendCoherentOperations"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type StructExtends
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = '[VkPhysicalDeviceFeatures2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        type FieldType "sType"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType"
-           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        type FieldType "pNext"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext"
-           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "advancedBlendCoherentOperations"
-           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        type FieldType "advancedBlendCoherentOperations"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = VkBool32
-        type FieldOptional "advancedBlendCoherentOperations"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "advancedBlendCoherentOperations"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations}
-        type FieldIsArray "advancedBlendCoherentOperations"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "advancedBlendCoherentOperations"
-           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "advancedBlendCoherentOperations"
-           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations}
-
-instance Show VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        showsPrec d x
-          = showString "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {"
-              .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "advancedBlendCoherentOperations = " .
-                            showsPrec d (getField @"advancedBlendCoherentOperations" x) .
-                              showChar '}'
-
--- | > typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     uint32_t                         advancedBlendMaxColorAttachments;
---   >     VkBool32                         advancedBlendIndependentBlend;
---   >     VkBool32                         advancedBlendNonPremultipliedSrcColor;
---   >     VkBool32                         advancedBlendNonPremultipliedDstColor;
---   >     VkBool32                         advancedBlendCorrelatedOverlap;
---   >     VkBool32                         advancedBlendAllOperations;
---   > } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT registry at www.khronos.org>
-data VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## Addr##
-                                                                                                                ByteArray##
-
-instance Eq VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        (VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## a _) ==
-          x@(VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        (VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## a _)
-          `compare`
-          x@(VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        unsafeAddr
-          (VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        type StructFields
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             =
-             '["sType", "pNext", "advancedBlendMaxColorAttachments", -- ' closing tick for hsc2hs
-               "advancedBlendIndependentBlend",
-               "advancedBlendNonPremultipliedSrcColor",
-               "advancedBlendNonPremultipliedDstColor",
-               "advancedBlendCorrelatedOverlap", "advancedBlendAllOperations"]
-        type CUnionType VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'True -- ' closing tick for hsc2hs
-        type StructExtends
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        type FieldType "sType"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        type FieldType "pNext"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "advancedBlendMaxColorAttachments"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        type FieldType "advancedBlendMaxColorAttachments"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = Word32
-        type FieldOptional "advancedBlendMaxColorAttachments"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "advancedBlendMaxColorAttachments"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendMaxColorAttachments}
-        type FieldIsArray "advancedBlendMaxColorAttachments"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendMaxColorAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "advancedBlendMaxColorAttachments"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendMaxColorAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendMaxColorAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "advancedBlendMaxColorAttachments"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendMaxColorAttachments}
-
-instance {-# OVERLAPPING #-}
-         HasField "advancedBlendIndependentBlend"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        type FieldType "advancedBlendIndependentBlend"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = VkBool32
-        type FieldOptional "advancedBlendIndependentBlend"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "advancedBlendIndependentBlend"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendIndependentBlend}
-        type FieldIsArray "advancedBlendIndependentBlend"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendIndependentBlend}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "advancedBlendIndependentBlend"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendIndependentBlend})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendIndependentBlend}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "advancedBlendIndependentBlend"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendIndependentBlend}
-
-instance {-# OVERLAPPING #-}
-         HasField "advancedBlendNonPremultipliedSrcColor"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        type FieldType "advancedBlendNonPremultipliedSrcColor"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = VkBool32
-        type FieldOptional "advancedBlendNonPremultipliedSrcColor"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "advancedBlendNonPremultipliedSrcColor"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedSrcColor}
-        type FieldIsArray "advancedBlendNonPremultipliedSrcColor"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedSrcColor}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "advancedBlendNonPremultipliedSrcColor"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedSrcColor})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedSrcColor}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "advancedBlendNonPremultipliedSrcColor"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedSrcColor}
-
-instance {-# OVERLAPPING #-}
-         HasField "advancedBlendNonPremultipliedDstColor"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        type FieldType "advancedBlendNonPremultipliedDstColor"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = VkBool32
-        type FieldOptional "advancedBlendNonPremultipliedDstColor"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "advancedBlendNonPremultipliedDstColor"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedDstColor}
-        type FieldIsArray "advancedBlendNonPremultipliedDstColor"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedDstColor}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "advancedBlendNonPremultipliedDstColor"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedDstColor})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedDstColor}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "advancedBlendNonPremultipliedDstColor"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedDstColor}
-
-instance {-# OVERLAPPING #-}
-         HasField "advancedBlendCorrelatedOverlap"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        type FieldType "advancedBlendCorrelatedOverlap"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = VkBool32
-        type FieldOptional "advancedBlendCorrelatedOverlap"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "advancedBlendCorrelatedOverlap"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendCorrelatedOverlap}
-        type FieldIsArray "advancedBlendCorrelatedOverlap"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendCorrelatedOverlap}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "advancedBlendCorrelatedOverlap"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendCorrelatedOverlap})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendCorrelatedOverlap}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "advancedBlendCorrelatedOverlap"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendCorrelatedOverlap}
-
-instance {-# OVERLAPPING #-}
-         HasField "advancedBlendAllOperations"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        type FieldType "advancedBlendAllOperations"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = VkBool32
-        type FieldOptional "advancedBlendAllOperations"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "advancedBlendAllOperations"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendAllOperations}
-        type FieldIsArray "advancedBlendAllOperations"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendAllOperations}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "advancedBlendAllOperations"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendAllOperations})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendAllOperations}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "advancedBlendAllOperations"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendAllOperations}
-
-instance Show VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        showsPrec d x
-          = showString
-              "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {"
-              .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "advancedBlendMaxColorAttachments = " .
-                            showsPrec d (getField @"advancedBlendMaxColorAttachments" x) .
-                              showString ", " .
-                                showString "advancedBlendIndependentBlend = " .
-                                  showsPrec d (getField @"advancedBlendIndependentBlend" x) .
-                                    showString ", " .
-                                      showString "advancedBlendNonPremultipliedSrcColor = " .
-                                        showsPrec d
-                                          (getField @"advancedBlendNonPremultipliedSrcColor" x)
-                                          .
-                                          showString ", " .
-                                            showString "advancedBlendNonPremultipliedDstColor = " .
-                                              showsPrec d
-                                                (getField @"advancedBlendNonPremultipliedDstColor"
-                                                   x)
-                                                .
-                                                showString ", " .
-                                                  showString "advancedBlendCorrelatedOverlap = " .
-                                                    showsPrec d
-                                                      (getField @"advancedBlendCorrelatedOverlap" x)
-                                                      .
-                                                      showString ", " .
-                                                        showString "advancedBlendAllOperations = " .
-                                                          showsPrec d
-                                                            (getField @"advancedBlendAllOperations"
-                                                               x)
-                                                            . showChar '}'
-
--- | > typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
---   >     VkStructureType sType;
---   >     void*                  pNext;
---   >     float                  primitiveOverestimationSize;
---   >     float                  maxExtraPrimitiveOverestimationSize;
---   >     float                  extraPrimitiveOverestimationSizeGranularity;
---   >     VkBool32               primitiveUnderestimation;
---   >     VkBool32               conservativePointAndLineRasterization;
---   >     VkBool32               degenerateTrianglesRasterized;
---   >     VkBool32               degenerateLinesRasterized;
---   >     VkBool32               fullyCoveredFragmentShaderInputVariable;
---   >     VkBool32               conservativeRasterizationPostDepthCoverage;
---   > } VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceConservativeRasterizationPropertiesEXT VkPhysicalDeviceConservativeRasterizationPropertiesEXT registry at www.khronos.org>
-data VkPhysicalDeviceConservativeRasterizationPropertiesEXT = VkPhysicalDeviceConservativeRasterizationPropertiesEXT## Addr##
-                                                                                                                      ByteArray##
-
-instance Eq VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        (VkPhysicalDeviceConservativeRasterizationPropertiesEXT## a _) ==
-          x@(VkPhysicalDeviceConservativeRasterizationPropertiesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        (VkPhysicalDeviceConservativeRasterizationPropertiesEXT## a _)
-          `compare`
-          x@(VkPhysicalDeviceConservativeRasterizationPropertiesEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceConservativeRasterizationPropertiesEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceConservativeRasterizationPropertiesEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        unsafeAddr
-          (VkPhysicalDeviceConservativeRasterizationPropertiesEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPhysicalDeviceConservativeRasterizationPropertiesEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceConservativeRasterizationPropertiesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type StructFields
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             '["sType", "pNext", "primitiveOverestimationSize", -- ' closing tick for hsc2hs
-               "maxExtraPrimitiveOverestimationSize",
-               "extraPrimitiveOverestimationSizeGranularity",
-               "primitiveUnderestimation",
-               "conservativePointAndLineRasterization",
-               "degenerateTrianglesRasterized", "degenerateLinesRasterized",
-               "fullyCoveredFragmentShaderInputVariable",
-               "conservativeRasterizationPostDepthCoverage"]
-        type CUnionType
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type StructExtends
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "sType"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "pNext"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "primitiveOverestimationSize"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "primitiveOverestimationSize"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = #{type float}
-        type FieldOptional "primitiveOverestimationSize"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "primitiveOverestimationSize"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveOverestimationSize}
-        type FieldIsArray "primitiveOverestimationSize"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveOverestimationSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "primitiveOverestimationSize"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveOverestimationSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveOverestimationSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "primitiveOverestimationSize"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveOverestimationSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxExtraPrimitiveOverestimationSize"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "maxExtraPrimitiveOverestimationSize"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = #{type float}
-        type FieldOptional "maxExtraPrimitiveOverestimationSize"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxExtraPrimitiveOverestimationSize"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, maxExtraPrimitiveOverestimationSize}
-        type FieldIsArray "maxExtraPrimitiveOverestimationSize"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, maxExtraPrimitiveOverestimationSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxExtraPrimitiveOverestimationSize"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, maxExtraPrimitiveOverestimationSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, maxExtraPrimitiveOverestimationSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxExtraPrimitiveOverestimationSize"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, maxExtraPrimitiveOverestimationSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "extraPrimitiveOverestimationSizeGranularity"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "extraPrimitiveOverestimationSizeGranularity"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = #{type float}
-        type FieldOptional "extraPrimitiveOverestimationSizeGranularity"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "extraPrimitiveOverestimationSizeGranularity"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, extraPrimitiveOverestimationSizeGranularity}
-        type FieldIsArray "extraPrimitiveOverestimationSizeGranularity"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, extraPrimitiveOverestimationSizeGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "extraPrimitiveOverestimationSizeGranularity"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, extraPrimitiveOverestimationSizeGranularity})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, extraPrimitiveOverestimationSizeGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "extraPrimitiveOverestimationSizeGranularity"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, extraPrimitiveOverestimationSizeGranularity}
-
-instance {-# OVERLAPPING #-}
-         HasField "primitiveUnderestimation"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "primitiveUnderestimation"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = VkBool32
-        type FieldOptional "primitiveUnderestimation"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "primitiveUnderestimation"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveUnderestimation}
-        type FieldIsArray "primitiveUnderestimation"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveUnderestimation}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "primitiveUnderestimation"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveUnderestimation})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveUnderestimation}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "primitiveUnderestimation"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveUnderestimation}
-
-instance {-# OVERLAPPING #-}
-         HasField "conservativePointAndLineRasterization"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "conservativePointAndLineRasterization"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = VkBool32
-        type FieldOptional "conservativePointAndLineRasterization"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "conservativePointAndLineRasterization"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativePointAndLineRasterization}
-        type FieldIsArray "conservativePointAndLineRasterization"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativePointAndLineRasterization}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "conservativePointAndLineRasterization"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativePointAndLineRasterization})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativePointAndLineRasterization}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "conservativePointAndLineRasterization"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativePointAndLineRasterization}
-
-instance {-# OVERLAPPING #-}
-         HasField "degenerateTrianglesRasterized"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "degenerateTrianglesRasterized"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = VkBool32
-        type FieldOptional "degenerateTrianglesRasterized"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "degenerateTrianglesRasterized"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateTrianglesRasterized}
-        type FieldIsArray "degenerateTrianglesRasterized"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateTrianglesRasterized}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "degenerateTrianglesRasterized"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateTrianglesRasterized})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateTrianglesRasterized}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "degenerateTrianglesRasterized"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateTrianglesRasterized}
-
-instance {-# OVERLAPPING #-}
-         HasField "degenerateLinesRasterized"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "degenerateLinesRasterized"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = VkBool32
-        type FieldOptional "degenerateLinesRasterized"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "degenerateLinesRasterized"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateLinesRasterized}
-        type FieldIsArray "degenerateLinesRasterized"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateLinesRasterized}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "degenerateLinesRasterized"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateLinesRasterized})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateLinesRasterized}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "degenerateLinesRasterized"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateLinesRasterized}
-
-instance {-# OVERLAPPING #-}
-         HasField "fullyCoveredFragmentShaderInputVariable"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "fullyCoveredFragmentShaderInputVariable"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = VkBool32
-        type FieldOptional "fullyCoveredFragmentShaderInputVariable"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "fullyCoveredFragmentShaderInputVariable"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, fullyCoveredFragmentShaderInputVariable}
-        type FieldIsArray "fullyCoveredFragmentShaderInputVariable"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, fullyCoveredFragmentShaderInputVariable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "fullyCoveredFragmentShaderInputVariable"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, fullyCoveredFragmentShaderInputVariable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, fullyCoveredFragmentShaderInputVariable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "fullyCoveredFragmentShaderInputVariable"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, fullyCoveredFragmentShaderInputVariable}
-
-instance {-# OVERLAPPING #-}
-         HasField "conservativeRasterizationPostDepthCoverage"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "conservativeRasterizationPostDepthCoverage"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = VkBool32
-        type FieldOptional "conservativeRasterizationPostDepthCoverage"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "conservativeRasterizationPostDepthCoverage"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativeRasterizationPostDepthCoverage}
-        type FieldIsArray "conservativeRasterizationPostDepthCoverage"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativeRasterizationPostDepthCoverage}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "conservativeRasterizationPostDepthCoverage"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativeRasterizationPostDepthCoverage})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativeRasterizationPostDepthCoverage}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "conservativeRasterizationPostDepthCoverage"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativeRasterizationPostDepthCoverage}
-
-instance Show
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        showsPrec d x
-          = showString
-              "VkPhysicalDeviceConservativeRasterizationPropertiesEXT {"
-              .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "primitiveOverestimationSize = " .
-                            showsPrec d (getField @"primitiveOverestimationSize" x) .
-                              showString ", " .
-                                showString "maxExtraPrimitiveOverestimationSize = " .
-                                  showsPrec d (getField @"maxExtraPrimitiveOverestimationSize" x) .
-                                    showString ", " .
-                                      showString "extraPrimitiveOverestimationSizeGranularity = " .
-                                        showsPrec d
-                                          (getField @"extraPrimitiveOverestimationSizeGranularity"
-                                             x)
-                                          .
-                                          showString ", " .
-                                            showString "primitiveUnderestimation = " .
-                                              showsPrec d (getField @"primitiveUnderestimation" x) .
-                                                showString ", " .
-                                                  showString
-                                                    "conservativePointAndLineRasterization = "
-                                                    .
-                                                    showsPrec d
-                                                      (getField
-                                                         @"conservativePointAndLineRasterization"
-                                                         x)
-                                                      .
-                                                      showString ", " .
-                                                        showString
-                                                          "degenerateTrianglesRasterized = "
-                                                          .
-                                                          showsPrec d
-                                                            (getField
-                                                               @"degenerateTrianglesRasterized"
-                                                               x)
-                                                            .
-                                                            showString ", " .
-                                                              showString
-                                                                "degenerateLinesRasterized = "
-                                                                .
-                                                                showsPrec d
-                                                                  (getField
-                                                                     @"degenerateLinesRasterized"
-                                                                     x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString
-                                                                      "fullyCoveredFragmentShaderInputVariable = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"fullyCoveredFragmentShaderInputVariable"
-                                                                           x)
-                                                                        .
-                                                                        showString ", " .
-                                                                          showString
-                                                                            "conservativeRasterizationPostDepthCoverage = "
-                                                                            .
-                                                                            showsPrec d
-                                                                              (getField
-                                                                                 @"conservativeRasterizationPostDepthCoverage"
-                                                                                 x)
-                                                                              . showChar '}'
-
--- | > typedef struct VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkBool32               shaderInputAttachmentArrayDynamicIndexing;
---   >     VkBool32               shaderUniformTexelBufferArrayDynamicIndexing;
---   >     VkBool32               shaderStorageTexelBufferArrayDynamicIndexing;
---   >     VkBool32               shaderUniformBufferArrayNonUniformIndexing;
---   >     VkBool32               shaderSampledImageArrayNonUniformIndexing;
---   >     VkBool32               shaderStorageBufferArrayNonUniformIndexing;
---   >     VkBool32               shaderStorageImageArrayNonUniformIndexing;
---   >     VkBool32               shaderInputAttachmentArrayNonUniformIndexing;
---   >     VkBool32               shaderUniformTexelBufferArrayNonUniformIndexing;
---   >     VkBool32               shaderStorageTexelBufferArrayNonUniformIndexing;
---   >     VkBool32               descriptorBindingUniformBufferUpdateAfterBind;
---   >     VkBool32               descriptorBindingSampledImageUpdateAfterBind;
---   >     VkBool32               descriptorBindingStorageImageUpdateAfterBind;
---   >     VkBool32               descriptorBindingStorageBufferUpdateAfterBind;
---   >     VkBool32               descriptorBindingUniformTexelBufferUpdateAfterBind;
---   >     VkBool32               descriptorBindingStorageTexelBufferUpdateAfterBind;
---   >     VkBool32               descriptorBindingUpdateUnusedWhilePending;
---   >     VkBool32               descriptorBindingPartiallyBound;
---   >     VkBool32               descriptorBindingVariableDescriptorCount;
---   >     VkBool32               runtimeDescriptorArray;
---   > } VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceDescriptorIndexingFeaturesEXT VkPhysicalDeviceDescriptorIndexingFeaturesEXT registry at www.khronos.org>
-data VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeaturesEXT## Addr##
-                                                                                                    ByteArray##
-
-instance Eq VkPhysicalDeviceDescriptorIndexingFeaturesEXT where
-        (VkPhysicalDeviceDescriptorIndexingFeaturesEXT## a _) ==
-          x@(VkPhysicalDeviceDescriptorIndexingFeaturesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceDescriptorIndexingFeaturesEXT where
-        (VkPhysicalDeviceDescriptorIndexingFeaturesEXT## a _) `compare`
-          x@(VkPhysicalDeviceDescriptorIndexingFeaturesEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceDescriptorIndexingFeaturesEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceDescriptorIndexingFeaturesEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        unsafeAddr (VkPhysicalDeviceDescriptorIndexingFeaturesEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPhysicalDeviceDescriptorIndexingFeaturesEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceDescriptorIndexingFeaturesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type StructFields VkPhysicalDeviceDescriptorIndexingFeaturesEXT =
-             '["sType", "pNext", "shaderInputAttachmentArrayDynamicIndexing", -- ' closing tick for hsc2hs
-               "shaderUniformTexelBufferArrayDynamicIndexing",
-               "shaderStorageTexelBufferArrayDynamicIndexing",
-               "shaderUniformBufferArrayNonUniformIndexing",
-               "shaderSampledImageArrayNonUniformIndexing",
-               "shaderStorageBufferArrayNonUniformIndexing",
-               "shaderStorageImageArrayNonUniformIndexing",
-               "shaderInputAttachmentArrayNonUniformIndexing",
-               "shaderUniformTexelBufferArrayNonUniformIndexing",
-               "shaderStorageTexelBufferArrayNonUniformIndexing",
-               "descriptorBindingUniformBufferUpdateAfterBind",
-               "descriptorBindingSampledImageUpdateAfterBind",
-               "descriptorBindingStorageImageUpdateAfterBind",
-               "descriptorBindingStorageBufferUpdateAfterBind",
-               "descriptorBindingUniformTexelBufferUpdateAfterBind",
-               "descriptorBindingStorageTexelBufferUpdateAfterBind",
-               "descriptorBindingUpdateUnusedWhilePending",
-               "descriptorBindingPartiallyBound",
-               "descriptorBindingVariableDescriptorCount",
-               "runtimeDescriptorArray"]
-        type CUnionType VkPhysicalDeviceDescriptorIndexingFeaturesEXT =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceDescriptorIndexingFeaturesEXT =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceDescriptorIndexingFeaturesEXT =
-             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "sType"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "pNext"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderInputAttachmentArrayDynamicIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "shaderInputAttachmentArrayDynamicIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkBool32
-        type FieldOptional "shaderInputAttachmentArrayDynamicIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderInputAttachmentArrayDynamicIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayDynamicIndexing}
-        type FieldIsArray "shaderInputAttachmentArrayDynamicIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderInputAttachmentArrayDynamicIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayDynamicIndexing})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderInputAttachmentArrayDynamicIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderUniformTexelBufferArrayDynamicIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "shaderUniformTexelBufferArrayDynamicIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkBool32
-        type FieldOptional "shaderUniformTexelBufferArrayDynamicIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderUniformTexelBufferArrayDynamicIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayDynamicIndexing}
-        type FieldIsArray "shaderUniformTexelBufferArrayDynamicIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderUniformTexelBufferArrayDynamicIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayDynamicIndexing})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderUniformTexelBufferArrayDynamicIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderStorageTexelBufferArrayDynamicIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "shaderStorageTexelBufferArrayDynamicIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkBool32
-        type FieldOptional "shaderStorageTexelBufferArrayDynamicIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderStorageTexelBufferArrayDynamicIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayDynamicIndexing}
-        type FieldIsArray "shaderStorageTexelBufferArrayDynamicIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderStorageTexelBufferArrayDynamicIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayDynamicIndexing})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderStorageTexelBufferArrayDynamicIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderUniformBufferArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "shaderUniformBufferArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkBool32
-        type FieldOptional "shaderUniformBufferArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderUniformBufferArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformBufferArrayNonUniformIndexing}
-        type FieldIsArray "shaderUniformBufferArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformBufferArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderUniformBufferArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformBufferArrayNonUniformIndexing})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformBufferArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderUniformBufferArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformBufferArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderSampledImageArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "shaderSampledImageArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkBool32
-        type FieldOptional "shaderSampledImageArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderSampledImageArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderSampledImageArrayNonUniformIndexing}
-        type FieldIsArray "shaderSampledImageArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderSampledImageArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderSampledImageArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderSampledImageArrayNonUniformIndexing})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderSampledImageArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderSampledImageArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderSampledImageArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderStorageBufferArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "shaderStorageBufferArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkBool32
-        type FieldOptional "shaderStorageBufferArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderStorageBufferArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageBufferArrayNonUniformIndexing}
-        type FieldIsArray "shaderStorageBufferArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageBufferArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderStorageBufferArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageBufferArrayNonUniformIndexing})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageBufferArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderStorageBufferArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageBufferArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderStorageImageArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "shaderStorageImageArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkBool32
-        type FieldOptional "shaderStorageImageArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderStorageImageArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageImageArrayNonUniformIndexing}
-        type FieldIsArray "shaderStorageImageArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageImageArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderStorageImageArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageImageArrayNonUniformIndexing})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageImageArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderStorageImageArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageImageArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderInputAttachmentArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "shaderInputAttachmentArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkBool32
-        type FieldOptional "shaderInputAttachmentArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderInputAttachmentArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayNonUniformIndexing}
-        type FieldIsArray "shaderInputAttachmentArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderInputAttachmentArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayNonUniformIndexing})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderInputAttachmentArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderUniformTexelBufferArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "shaderUniformTexelBufferArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkBool32
-        type FieldOptional
-               "shaderUniformTexelBufferArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderUniformTexelBufferArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayNonUniformIndexing}
-        type FieldIsArray "shaderUniformTexelBufferArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderUniformTexelBufferArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayNonUniformIndexing})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderUniformTexelBufferArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderStorageTexelBufferArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "shaderStorageTexelBufferArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkBool32
-        type FieldOptional
-               "shaderStorageTexelBufferArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderStorageTexelBufferArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayNonUniformIndexing}
-        type FieldIsArray "shaderStorageTexelBufferArrayNonUniformIndexing"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderStorageTexelBufferArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayNonUniformIndexing})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderStorageTexelBufferArrayNonUniformIndexing"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayNonUniformIndexing}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorBindingUniformBufferUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "descriptorBindingUniformBufferUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkBool32
-        type FieldOptional "descriptorBindingUniformBufferUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "descriptorBindingUniformBufferUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformBufferUpdateAfterBind}
-        type FieldIsArray "descriptorBindingUniformBufferUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformBufferUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorBindingUniformBufferUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformBufferUpdateAfterBind})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformBufferUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorBindingUniformBufferUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformBufferUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorBindingSampledImageUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "descriptorBindingSampledImageUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkBool32
-        type FieldOptional "descriptorBindingSampledImageUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "descriptorBindingSampledImageUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingSampledImageUpdateAfterBind}
-        type FieldIsArray "descriptorBindingSampledImageUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingSampledImageUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorBindingSampledImageUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingSampledImageUpdateAfterBind})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingSampledImageUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorBindingSampledImageUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingSampledImageUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorBindingStorageImageUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "descriptorBindingStorageImageUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkBool32
-        type FieldOptional "descriptorBindingStorageImageUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "descriptorBindingStorageImageUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageImageUpdateAfterBind}
-        type FieldIsArray "descriptorBindingStorageImageUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageImageUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorBindingStorageImageUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageImageUpdateAfterBind})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageImageUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorBindingStorageImageUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageImageUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorBindingStorageBufferUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "descriptorBindingStorageBufferUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkBool32
-        type FieldOptional "descriptorBindingStorageBufferUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "descriptorBindingStorageBufferUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageBufferUpdateAfterBind}
-        type FieldIsArray "descriptorBindingStorageBufferUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageBufferUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorBindingStorageBufferUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageBufferUpdateAfterBind})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageBufferUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorBindingStorageBufferUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageBufferUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorBindingUniformTexelBufferUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "descriptorBindingUniformTexelBufferUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkBool32
-        type FieldOptional
-               "descriptorBindingUniformTexelBufferUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset
-               "descriptorBindingUniformTexelBufferUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformTexelBufferUpdateAfterBind}
-        type FieldIsArray
-               "descriptorBindingUniformTexelBufferUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformTexelBufferUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorBindingUniformTexelBufferUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformTexelBufferUpdateAfterBind})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformTexelBufferUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorBindingUniformTexelBufferUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformTexelBufferUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorBindingStorageTexelBufferUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "descriptorBindingStorageTexelBufferUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkBool32
-        type FieldOptional
-               "descriptorBindingStorageTexelBufferUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset
-               "descriptorBindingStorageTexelBufferUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageTexelBufferUpdateAfterBind}
-        type FieldIsArray
-               "descriptorBindingStorageTexelBufferUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageTexelBufferUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorBindingStorageTexelBufferUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageTexelBufferUpdateAfterBind})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageTexelBufferUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorBindingStorageTexelBufferUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageTexelBufferUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorBindingUpdateUnusedWhilePending"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "descriptorBindingUpdateUnusedWhilePending"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkBool32
-        type FieldOptional "descriptorBindingUpdateUnusedWhilePending"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "descriptorBindingUpdateUnusedWhilePending"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUpdateUnusedWhilePending}
-        type FieldIsArray "descriptorBindingUpdateUnusedWhilePending"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUpdateUnusedWhilePending}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorBindingUpdateUnusedWhilePending"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUpdateUnusedWhilePending})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUpdateUnusedWhilePending}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorBindingUpdateUnusedWhilePending"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUpdateUnusedWhilePending}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorBindingPartiallyBound"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "descriptorBindingPartiallyBound"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkBool32
-        type FieldOptional "descriptorBindingPartiallyBound"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "descriptorBindingPartiallyBound"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingPartiallyBound}
-        type FieldIsArray "descriptorBindingPartiallyBound"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingPartiallyBound}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorBindingPartiallyBound"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingPartiallyBound})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingPartiallyBound}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorBindingPartiallyBound"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingPartiallyBound}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorBindingVariableDescriptorCount"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "descriptorBindingVariableDescriptorCount"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkBool32
-        type FieldOptional "descriptorBindingVariableDescriptorCount"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "descriptorBindingVariableDescriptorCount"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingVariableDescriptorCount}
-        type FieldIsArray "descriptorBindingVariableDescriptorCount"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingVariableDescriptorCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorBindingVariableDescriptorCount"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingVariableDescriptorCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingVariableDescriptorCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorBindingVariableDescriptorCount"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingVariableDescriptorCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "runtimeDescriptorArray"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        type FieldType "runtimeDescriptorArray"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = VkBool32
-        type FieldOptional "runtimeDescriptorArray"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "runtimeDescriptorArray"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, runtimeDescriptorArray}
-        type FieldIsArray "runtimeDescriptorArray"
-               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, runtimeDescriptorArray}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "runtimeDescriptorArray"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, runtimeDescriptorArray})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, runtimeDescriptorArray}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "runtimeDescriptorArray"
-           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, runtimeDescriptorArray}
-
-instance Show VkPhysicalDeviceDescriptorIndexingFeaturesEXT where
-        showsPrec d x
-          = showString "VkPhysicalDeviceDescriptorIndexingFeaturesEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "shaderInputAttachmentArrayDynamicIndexing = " .
-                            showsPrec d
-                              (getField @"shaderInputAttachmentArrayDynamicIndexing" x)
-                              .
-                              showString ", " .
-                                showString "shaderUniformTexelBufferArrayDynamicIndexing = " .
-                                  showsPrec d
-                                    (getField @"shaderUniformTexelBufferArrayDynamicIndexing" x)
-                                    .
-                                    showString ", " .
-                                      showString "shaderStorageTexelBufferArrayDynamicIndexing = " .
-                                        showsPrec d
-                                          (getField @"shaderStorageTexelBufferArrayDynamicIndexing"
-                                             x)
-                                          .
-                                          showString ", " .
-                                            showString
-                                              "shaderUniformBufferArrayNonUniformIndexing = "
-                                              .
-                                              showsPrec d
-                                                (getField
-                                                   @"shaderUniformBufferArrayNonUniformIndexing"
-                                                   x)
-                                                .
-                                                showString ", " .
-                                                  showString
-                                                    "shaderSampledImageArrayNonUniformIndexing = "
-                                                    .
-                                                    showsPrec d
-                                                      (getField
-                                                         @"shaderSampledImageArrayNonUniformIndexing"
-                                                         x)
-                                                      .
-                                                      showString ", " .
-                                                        showString
-                                                          "shaderStorageBufferArrayNonUniformIndexing = "
-                                                          .
-                                                          showsPrec d
-                                                            (getField
-                                                               @"shaderStorageBufferArrayNonUniformIndexing"
-                                                               x)
-                                                            .
-                                                            showString ", " .
-                                                              showString
-                                                                "shaderStorageImageArrayNonUniformIndexing = "
-                                                                .
-                                                                showsPrec d
-                                                                  (getField
-                                                                     @"shaderStorageImageArrayNonUniformIndexing"
-                                                                     x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString
-                                                                      "shaderInputAttachmentArrayNonUniformIndexing = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"shaderInputAttachmentArrayNonUniformIndexing"
-                                                                           x)
-                                                                        .
-                                                                        showString ", " .
-                                                                          showString
-                                                                            "shaderUniformTexelBufferArrayNonUniformIndexing = "
-                                                                            .
-                                                                            showsPrec d
-                                                                              (getField
-                                                                                 @"shaderUniformTexelBufferArrayNonUniformIndexing"
-                                                                                 x)
-                                                                              .
-                                                                              showString ", " .
-                                                                                showString
-                                                                                  "shaderStorageTexelBufferArrayNonUniformIndexing = "
-                                                                                  .
-                                                                                  showsPrec d
-                                                                                    (getField
-                                                                                       @"shaderStorageTexelBufferArrayNonUniformIndexing"
-                                                                                       x)
-                                                                                    .
-                                                                                    showString ", "
-                                                                                      .
-                                                                                      showString
-                                                                                        "descriptorBindingUniformBufferUpdateAfterBind = "
-                                                                                        .
-                                                                                        showsPrec d
-                                                                                          (getField
-                                                                                             @"descriptorBindingUniformBufferUpdateAfterBind"
-                                                                                             x)
-                                                                                          .
-                                                                                          showString
-                                                                                            ", "
-                                                                                            .
-                                                                                            showString
-                                                                                              "descriptorBindingSampledImageUpdateAfterBind = "
-                                                                                              .
-                                                                                              showsPrec
-                                                                                                d
-                                                                                                (getField
-                                                                                                   @"descriptorBindingSampledImageUpdateAfterBind"
-                                                                                                   x)
-                                                                                                .
-                                                                                                showString
-                                                                                                  ", "
-                                                                                                  .
-                                                                                                  showString
-                                                                                                    "descriptorBindingStorageImageUpdateAfterBind = "
-                                                                                                    .
-                                                                                                    showsPrec
-                                                                                                      d
-                                                                                                      (getField
-                                                                                                         @"descriptorBindingStorageImageUpdateAfterBind"
-                                                                                                         x)
-                                                                                                      .
-                                                                                                      showString
-                                                                                                        ", "
-                                                                                                        .
-                                                                                                        showString
-                                                                                                          "descriptorBindingStorageBufferUpdateAfterBind = "
-                                                                                                          .
-                                                                                                          showsPrec
-                                                                                                            d
-                                                                                                            (getField
-                                                                                                               @"descriptorBindingStorageBufferUpdateAfterBind"
-                                                                                                               x)
-                                                                                                            .
-                                                                                                            showString
-                                                                                                              ", "
-                                                                                                              .
-                                                                                                              showString
-                                                                                                                "descriptorBindingUniformTexelBufferUpdateAfterBind = "
-                                                                                                                .
-                                                                                                                showsPrec
-                                                                                                                  d
-                                                                                                                  (getField
-                                                                                                                     @"descriptorBindingUniformTexelBufferUpdateAfterBind"
-                                                                                                                     x)
-                                                                                                                  .
-                                                                                                                  showString
-                                                                                                                    ", "
-                                                                                                                    .
-                                                                                                                    showString
-                                                                                                                      "descriptorBindingStorageTexelBufferUpdateAfterBind = "
-                                                                                                                      .
-                                                                                                                      showsPrec
-                                                                                                                        d
-                                                                                                                        (getField
-                                                                                                                           @"descriptorBindingStorageTexelBufferUpdateAfterBind"
-                                                                                                                           x)
-                                                                                                                        .
-                                                                                                                        showString
-                                                                                                                          ", "
-                                                                                                                          .
-                                                                                                                          showString
-                                                                                                                            "descriptorBindingUpdateUnusedWhilePending = "
-                                                                                                                            .
-                                                                                                                            showsPrec
-                                                                                                                              d
-                                                                                                                              (getField
-                                                                                                                                 @"descriptorBindingUpdateUnusedWhilePending"
-                                                                                                                                 x)
-                                                                                                                              .
-                                                                                                                              showString
-                                                                                                                                ", "
-                                                                                                                                .
-                                                                                                                                showString
-                                                                                                                                  "descriptorBindingPartiallyBound = "
-                                                                                                                                  .
-                                                                                                                                  showsPrec
-                                                                                                                                    d
-                                                                                                                                    (getField
-                                                                                                                                       @"descriptorBindingPartiallyBound"
-                                                                                                                                       x)
-                                                                                                                                    .
-                                                                                                                                    showString
-                                                                                                                                      ", "
-                                                                                                                                      .
-                                                                                                                                      showString
-                                                                                                                                        "descriptorBindingVariableDescriptorCount = "
-                                                                                                                                        .
-                                                                                                                                        showsPrec
-                                                                                                                                          d
-                                                                                                                                          (getField
-                                                                                                                                             @"descriptorBindingVariableDescriptorCount"
-                                                                                                                                             x)
-                                                                                                                                          .
-                                                                                                                                          showString
-                                                                                                                                            ", "
-                                                                                                                                            .
-                                                                                                                                            showString
-                                                                                                                                              "runtimeDescriptorArray = "
-                                                                                                                                              .
-                                                                                                                                              showsPrec
-                                                                                                                                                d
-                                                                                                                                                (getField
-                                                                                                                                                   @"runtimeDescriptorArray"
-                                                                                                                                                   x)
-                                                                                                                                                .
-                                                                                                                                                showChar
-                                                                                                                                                  '}'
-
--- | > typedef struct VkPhysicalDeviceDescriptorIndexingPropertiesEXT {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     uint32_t               maxUpdateAfterBindDescriptorsInAllPools;
---   >     VkBool32               shaderUniformBufferArrayNonUniformIndexingNative;
---   >     VkBool32               shaderSampledImageArrayNonUniformIndexingNative;
---   >     VkBool32               shaderStorageBufferArrayNonUniformIndexingNative;
---   >     VkBool32               shaderStorageImageArrayNonUniformIndexingNative;
---   >     VkBool32               shaderInputAttachmentArrayNonUniformIndexingNative;
---   >     VkBool32               robustBufferAccessUpdateAfterBind;
---   >     VkBool32               quadDivergentImplicitLod;
---   >     uint32_t               maxPerStageDescriptorUpdateAfterBindSamplers;
---   >     uint32_t               maxPerStageDescriptorUpdateAfterBindUniformBuffers;
---   >     uint32_t               maxPerStageDescriptorUpdateAfterBindStorageBuffers;
---   >     uint32_t               maxPerStageDescriptorUpdateAfterBindSampledImages;
---   >     uint32_t               maxPerStageDescriptorUpdateAfterBindStorageImages;
---   >     uint32_t               maxPerStageDescriptorUpdateAfterBindInputAttachments;
---   >     uint32_t               maxPerStageUpdateAfterBindResources;
---   >     uint32_t               maxDescriptorSetUpdateAfterBindSamplers;
---   >     uint32_t               maxDescriptorSetUpdateAfterBindUniformBuffers;
---   >     uint32_t               maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
---   >     uint32_t               maxDescriptorSetUpdateAfterBindStorageBuffers;
---   >     uint32_t               maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
---   >     uint32_t               maxDescriptorSetUpdateAfterBindSampledImages;
---   >     uint32_t               maxDescriptorSetUpdateAfterBindStorageImages;
---   >     uint32_t               maxDescriptorSetUpdateAfterBindInputAttachments;
---   > } VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceDescriptorIndexingPropertiesEXT VkPhysicalDeviceDescriptorIndexingPropertiesEXT registry at www.khronos.org>
-data VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingPropertiesEXT## Addr##
-                                                                                                        ByteArray##
-
-instance Eq VkPhysicalDeviceDescriptorIndexingPropertiesEXT where
-        (VkPhysicalDeviceDescriptorIndexingPropertiesEXT## a _) ==
-          x@(VkPhysicalDeviceDescriptorIndexingPropertiesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceDescriptorIndexingPropertiesEXT where
-        (VkPhysicalDeviceDescriptorIndexingPropertiesEXT## a _) `compare`
-          x@(VkPhysicalDeviceDescriptorIndexingPropertiesEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceDescriptorIndexingPropertiesEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceDescriptorIndexingPropertiesEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        unsafeAddr (VkPhysicalDeviceDescriptorIndexingPropertiesEXT## a _)
-          = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPhysicalDeviceDescriptorIndexingPropertiesEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceDescriptorIndexingPropertiesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type StructFields VkPhysicalDeviceDescriptorIndexingPropertiesEXT =
-             '["sType", "pNext", "maxUpdateAfterBindDescriptorsInAllPools", -- ' closing tick for hsc2hs
-               "shaderUniformBufferArrayNonUniformIndexingNative",
-               "shaderSampledImageArrayNonUniformIndexingNative",
-               "shaderStorageBufferArrayNonUniformIndexingNative",
-               "shaderStorageImageArrayNonUniformIndexingNative",
-               "shaderInputAttachmentArrayNonUniformIndexingNative",
-               "robustBufferAccessUpdateAfterBind", "quadDivergentImplicitLod",
-               "maxPerStageDescriptorUpdateAfterBindSamplers",
-               "maxPerStageDescriptorUpdateAfterBindUniformBuffers",
-               "maxPerStageDescriptorUpdateAfterBindStorageBuffers",
-               "maxPerStageDescriptorUpdateAfterBindSampledImages",
-               "maxPerStageDescriptorUpdateAfterBindStorageImages",
-               "maxPerStageDescriptorUpdateAfterBindInputAttachments",
-               "maxPerStageUpdateAfterBindResources",
-               "maxDescriptorSetUpdateAfterBindSamplers",
-               "maxDescriptorSetUpdateAfterBindUniformBuffers",
-               "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic",
-               "maxDescriptorSetUpdateAfterBindStorageBuffers",
-               "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic",
-               "maxDescriptorSetUpdateAfterBindSampledImages",
-               "maxDescriptorSetUpdateAfterBindStorageImages",
-               "maxDescriptorSetUpdateAfterBindInputAttachments"]
-        type CUnionType VkPhysicalDeviceDescriptorIndexingPropertiesEXT =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceDescriptorIndexingPropertiesEXT =
-             'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "sType"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "pNext"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxUpdateAfterBindDescriptorsInAllPools"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "maxUpdateAfterBindDescriptorsInAllPools"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = Word32
-        type FieldOptional "maxUpdateAfterBindDescriptorsInAllPools"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxUpdateAfterBindDescriptorsInAllPools"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxUpdateAfterBindDescriptorsInAllPools}
-        type FieldIsArray "maxUpdateAfterBindDescriptorsInAllPools"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxUpdateAfterBindDescriptorsInAllPools}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxUpdateAfterBindDescriptorsInAllPools"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxUpdateAfterBindDescriptorsInAllPools})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxUpdateAfterBindDescriptorsInAllPools}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxUpdateAfterBindDescriptorsInAllPools"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxUpdateAfterBindDescriptorsInAllPools}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderUniformBufferArrayNonUniformIndexingNative"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "shaderUniformBufferArrayNonUniformIndexingNative"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = VkBool32
-        type FieldOptional
-               "shaderUniformBufferArrayNonUniformIndexingNative"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderUniformBufferArrayNonUniformIndexingNative"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderUniformBufferArrayNonUniformIndexingNative}
-        type FieldIsArray
-               "shaderUniformBufferArrayNonUniformIndexingNative"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderUniformBufferArrayNonUniformIndexingNative}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderUniformBufferArrayNonUniformIndexingNative"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderUniformBufferArrayNonUniformIndexingNative})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderUniformBufferArrayNonUniformIndexingNative}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderUniformBufferArrayNonUniformIndexingNative"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderUniformBufferArrayNonUniformIndexingNative}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderSampledImageArrayNonUniformIndexingNative"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "shaderSampledImageArrayNonUniformIndexingNative"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = VkBool32
-        type FieldOptional
-               "shaderSampledImageArrayNonUniformIndexingNative"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderSampledImageArrayNonUniformIndexingNative"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderSampledImageArrayNonUniformIndexingNative}
-        type FieldIsArray "shaderSampledImageArrayNonUniformIndexingNative"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderSampledImageArrayNonUniformIndexingNative}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderSampledImageArrayNonUniformIndexingNative"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderSampledImageArrayNonUniformIndexingNative})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderSampledImageArrayNonUniformIndexingNative}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderSampledImageArrayNonUniformIndexingNative"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderSampledImageArrayNonUniformIndexingNative}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderStorageBufferArrayNonUniformIndexingNative"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "shaderStorageBufferArrayNonUniformIndexingNative"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = VkBool32
-        type FieldOptional
-               "shaderStorageBufferArrayNonUniformIndexingNative"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderStorageBufferArrayNonUniformIndexingNative"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageBufferArrayNonUniformIndexingNative}
-        type FieldIsArray
-               "shaderStorageBufferArrayNonUniformIndexingNative"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageBufferArrayNonUniformIndexingNative}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderStorageBufferArrayNonUniformIndexingNative"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageBufferArrayNonUniformIndexingNative})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageBufferArrayNonUniformIndexingNative}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderStorageBufferArrayNonUniformIndexingNative"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageBufferArrayNonUniformIndexingNative}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderStorageImageArrayNonUniformIndexingNative"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "shaderStorageImageArrayNonUniformIndexingNative"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = VkBool32
-        type FieldOptional
-               "shaderStorageImageArrayNonUniformIndexingNative"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderStorageImageArrayNonUniformIndexingNative"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageImageArrayNonUniformIndexingNative}
-        type FieldIsArray "shaderStorageImageArrayNonUniformIndexingNative"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageImageArrayNonUniformIndexingNative}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderStorageImageArrayNonUniformIndexingNative"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageImageArrayNonUniformIndexingNative})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageImageArrayNonUniformIndexingNative}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderStorageImageArrayNonUniformIndexingNative"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageImageArrayNonUniformIndexingNative}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderInputAttachmentArrayNonUniformIndexingNative"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "shaderInputAttachmentArrayNonUniformIndexingNative"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = VkBool32
-        type FieldOptional
-               "shaderInputAttachmentArrayNonUniformIndexingNative"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset
-               "shaderInputAttachmentArrayNonUniformIndexingNative"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderInputAttachmentArrayNonUniformIndexingNative}
-        type FieldIsArray
-               "shaderInputAttachmentArrayNonUniformIndexingNative"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderInputAttachmentArrayNonUniformIndexingNative}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderInputAttachmentArrayNonUniformIndexingNative"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderInputAttachmentArrayNonUniformIndexingNative})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderInputAttachmentArrayNonUniformIndexingNative}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderInputAttachmentArrayNonUniformIndexingNative"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderInputAttachmentArrayNonUniformIndexingNative}
-
-instance {-# OVERLAPPING #-}
-         HasField "robustBufferAccessUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "robustBufferAccessUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = VkBool32
-        type FieldOptional "robustBufferAccessUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "robustBufferAccessUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, robustBufferAccessUpdateAfterBind}
-        type FieldIsArray "robustBufferAccessUpdateAfterBind"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, robustBufferAccessUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "robustBufferAccessUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, robustBufferAccessUpdateAfterBind})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, robustBufferAccessUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "robustBufferAccessUpdateAfterBind"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, robustBufferAccessUpdateAfterBind}
-
-instance {-# OVERLAPPING #-}
-         HasField "quadDivergentImplicitLod"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "quadDivergentImplicitLod"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = VkBool32
-        type FieldOptional "quadDivergentImplicitLod"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "quadDivergentImplicitLod"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, quadDivergentImplicitLod}
-        type FieldIsArray "quadDivergentImplicitLod"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, quadDivergentImplicitLod}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "quadDivergentImplicitLod"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, quadDivergentImplicitLod})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, quadDivergentImplicitLod}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "quadDivergentImplicitLod"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, quadDivergentImplicitLod}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageDescriptorUpdateAfterBindSamplers"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "maxPerStageDescriptorUpdateAfterBindSamplers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = Word32
-        type FieldOptional "maxPerStageDescriptorUpdateAfterBindSamplers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPerStageDescriptorUpdateAfterBindSamplers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSamplers}
-        type FieldIsArray "maxPerStageDescriptorUpdateAfterBindSamplers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSamplers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageDescriptorUpdateAfterBindSamplers"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSamplers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSamplers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerStageDescriptorUpdateAfterBindSamplers"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSamplers}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = Word32
-        type FieldOptional
-               "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset
-               "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindUniformBuffers}
-        type FieldIsArray
-               "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindUniformBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindUniformBuffers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindUniformBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindUniformBuffers}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = Word32
-        type FieldOptional
-               "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset
-               "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageBuffers}
-        type FieldIsArray
-               "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageBuffers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageBuffers}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageDescriptorUpdateAfterBindSampledImages"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "maxPerStageDescriptorUpdateAfterBindSampledImages"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = Word32
-        type FieldOptional
-               "maxPerStageDescriptorUpdateAfterBindSampledImages"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset
-               "maxPerStageDescriptorUpdateAfterBindSampledImages"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSampledImages}
-        type FieldIsArray
-               "maxPerStageDescriptorUpdateAfterBindSampledImages"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSampledImages}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageDescriptorUpdateAfterBindSampledImages"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSampledImages})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSampledImages}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerStageDescriptorUpdateAfterBindSampledImages"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSampledImages}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageDescriptorUpdateAfterBindStorageImages"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "maxPerStageDescriptorUpdateAfterBindStorageImages"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = Word32
-        type FieldOptional
-               "maxPerStageDescriptorUpdateAfterBindStorageImages"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset
-               "maxPerStageDescriptorUpdateAfterBindStorageImages"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageImages}
-        type FieldIsArray
-               "maxPerStageDescriptorUpdateAfterBindStorageImages"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageImages}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageDescriptorUpdateAfterBindStorageImages"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageImages})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageImages}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerStageDescriptorUpdateAfterBindStorageImages"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageImages}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageDescriptorUpdateAfterBindInputAttachments"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType
-               "maxPerStageDescriptorUpdateAfterBindInputAttachments"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = Word32
-        type FieldOptional
-               "maxPerStageDescriptorUpdateAfterBindInputAttachments"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset
-               "maxPerStageDescriptorUpdateAfterBindInputAttachments"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindInputAttachments}
-        type FieldIsArray
-               "maxPerStageDescriptorUpdateAfterBindInputAttachments"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindInputAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageDescriptorUpdateAfterBindInputAttachments"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindInputAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindInputAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField
-           "maxPerStageDescriptorUpdateAfterBindInputAttachments"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindInputAttachments}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageUpdateAfterBindResources"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "maxPerStageUpdateAfterBindResources"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = Word32
-        type FieldOptional "maxPerStageUpdateAfterBindResources"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPerStageUpdateAfterBindResources"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageUpdateAfterBindResources}
-        type FieldIsArray "maxPerStageUpdateAfterBindResources"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageUpdateAfterBindResources}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageUpdateAfterBindResources"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageUpdateAfterBindResources})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageUpdateAfterBindResources}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerStageUpdateAfterBindResources"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageUpdateAfterBindResources}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetUpdateAfterBindSamplers"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "maxDescriptorSetUpdateAfterBindSamplers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = Word32
-        type FieldOptional "maxDescriptorSetUpdateAfterBindSamplers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetUpdateAfterBindSamplers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSamplers}
-        type FieldIsArray "maxDescriptorSetUpdateAfterBindSamplers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSamplers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetUpdateAfterBindSamplers"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSamplers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSamplers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetUpdateAfterBindSamplers"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSamplers}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetUpdateAfterBindUniformBuffers"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "maxDescriptorSetUpdateAfterBindUniformBuffers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = Word32
-        type FieldOptional "maxDescriptorSetUpdateAfterBindUniformBuffers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetUpdateAfterBindUniformBuffers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffers}
-        type FieldIsArray "maxDescriptorSetUpdateAfterBindUniformBuffers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetUpdateAfterBindUniformBuffers"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetUpdateAfterBindUniformBuffers"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffers}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType
-               "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = Word32
-        type FieldOptional
-               "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset
-               "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic}
-        type FieldIsArray
-               "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField
-           "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetUpdateAfterBindStorageBuffers"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "maxDescriptorSetUpdateAfterBindStorageBuffers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = Word32
-        type FieldOptional "maxDescriptorSetUpdateAfterBindStorageBuffers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetUpdateAfterBindStorageBuffers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffers}
-        type FieldIsArray "maxDescriptorSetUpdateAfterBindStorageBuffers"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetUpdateAfterBindStorageBuffers"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetUpdateAfterBindStorageBuffers"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffers}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType
-               "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = Word32
-        type FieldOptional
-               "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset
-               "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic}
-        type FieldIsArray
-               "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField
-           "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetUpdateAfterBindSampledImages"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "maxDescriptorSetUpdateAfterBindSampledImages"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = Word32
-        type FieldOptional "maxDescriptorSetUpdateAfterBindSampledImages"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetUpdateAfterBindSampledImages"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSampledImages}
-        type FieldIsArray "maxDescriptorSetUpdateAfterBindSampledImages"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSampledImages}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetUpdateAfterBindSampledImages"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSampledImages})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSampledImages}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetUpdateAfterBindSampledImages"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSampledImages}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetUpdateAfterBindStorageImages"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "maxDescriptorSetUpdateAfterBindStorageImages"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = Word32
-        type FieldOptional "maxDescriptorSetUpdateAfterBindStorageImages"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetUpdateAfterBindStorageImages"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageImages}
-        type FieldIsArray "maxDescriptorSetUpdateAfterBindStorageImages"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageImages}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetUpdateAfterBindStorageImages"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageImages})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageImages}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetUpdateAfterBindStorageImages"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageImages}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetUpdateAfterBindInputAttachments"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        type FieldType "maxDescriptorSetUpdateAfterBindInputAttachments"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = Word32
-        type FieldOptional
-               "maxDescriptorSetUpdateAfterBindInputAttachments"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetUpdateAfterBindInputAttachments"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindInputAttachments}
-        type FieldIsArray "maxDescriptorSetUpdateAfterBindInputAttachments"
-               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindInputAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetUpdateAfterBindInputAttachments"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindInputAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindInputAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetUpdateAfterBindInputAttachments"
-           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindInputAttachments}
-
-instance Show VkPhysicalDeviceDescriptorIndexingPropertiesEXT where
-        showsPrec d x
-          = showString "VkPhysicalDeviceDescriptorIndexingPropertiesEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "maxUpdateAfterBindDescriptorsInAllPools = " .
-                            showsPrec d (getField @"maxUpdateAfterBindDescriptorsInAllPools" x)
-                              .
-                              showString ", " .
-                                showString "shaderUniformBufferArrayNonUniformIndexingNative = " .
-                                  showsPrec d
-                                    (getField @"shaderUniformBufferArrayNonUniformIndexingNative" x)
-                                    .
-                                    showString ", " .
-                                      showString
-                                        "shaderSampledImageArrayNonUniformIndexingNative = "
-                                        .
-                                        showsPrec d
-                                          (getField
-                                             @"shaderSampledImageArrayNonUniformIndexingNative"
-                                             x)
-                                          .
-                                          showString ", " .
-                                            showString
-                                              "shaderStorageBufferArrayNonUniformIndexingNative = "
-                                              .
-                                              showsPrec d
-                                                (getField
-                                                   @"shaderStorageBufferArrayNonUniformIndexingNative"
-                                                   x)
-                                                .
-                                                showString ", " .
-                                                  showString
-                                                    "shaderStorageImageArrayNonUniformIndexingNative = "
-                                                    .
-                                                    showsPrec d
-                                                      (getField
-                                                         @"shaderStorageImageArrayNonUniformIndexingNative"
-                                                         x)
-                                                      .
-                                                      showString ", " .
-                                                        showString
-                                                          "shaderInputAttachmentArrayNonUniformIndexingNative = "
-                                                          .
-                                                          showsPrec d
-                                                            (getField
-                                                               @"shaderInputAttachmentArrayNonUniformIndexingNative"
-                                                               x)
-                                                            .
-                                                            showString ", " .
-                                                              showString
-                                                                "robustBufferAccessUpdateAfterBind = "
-                                                                .
-                                                                showsPrec d
-                                                                  (getField
-                                                                     @"robustBufferAccessUpdateAfterBind"
-                                                                     x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString
-                                                                      "quadDivergentImplicitLod = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"quadDivergentImplicitLod"
-                                                                           x)
-                                                                        .
-                                                                        showString ", " .
-                                                                          showString
-                                                                            "maxPerStageDescriptorUpdateAfterBindSamplers = "
-                                                                            .
-                                                                            showsPrec d
-                                                                              (getField
-                                                                                 @"maxPerStageDescriptorUpdateAfterBindSamplers"
-                                                                                 x)
-                                                                              .
-                                                                              showString ", " .
-                                                                                showString
-                                                                                  "maxPerStageDescriptorUpdateAfterBindUniformBuffers = "
-                                                                                  .
-                                                                                  showsPrec d
-                                                                                    (getField
-                                                                                       @"maxPerStageDescriptorUpdateAfterBindUniformBuffers"
-                                                                                       x)
-                                                                                    .
-                                                                                    showString ", "
-                                                                                      .
-                                                                                      showString
-                                                                                        "maxPerStageDescriptorUpdateAfterBindStorageBuffers = "
-                                                                                        .
-                                                                                        showsPrec d
-                                                                                          (getField
-                                                                                             @"maxPerStageDescriptorUpdateAfterBindStorageBuffers"
-                                                                                             x)
-                                                                                          .
-                                                                                          showString
-                                                                                            ", "
-                                                                                            .
-                                                                                            showString
-                                                                                              "maxPerStageDescriptorUpdateAfterBindSampledImages = "
-                                                                                              .
-                                                                                              showsPrec
-                                                                                                d
-                                                                                                (getField
-                                                                                                   @"maxPerStageDescriptorUpdateAfterBindSampledImages"
-                                                                                                   x)
-                                                                                                .
-                                                                                                showString
-                                                                                                  ", "
-                                                                                                  .
-                                                                                                  showString
-                                                                                                    "maxPerStageDescriptorUpdateAfterBindStorageImages = "
-                                                                                                    .
-                                                                                                    showsPrec
-                                                                                                      d
-                                                                                                      (getField
-                                                                                                         @"maxPerStageDescriptorUpdateAfterBindStorageImages"
-                                                                                                         x)
-                                                                                                      .
-                                                                                                      showString
-                                                                                                        ", "
-                                                                                                        .
-                                                                                                        showString
-                                                                                                          "maxPerStageDescriptorUpdateAfterBindInputAttachments = "
-                                                                                                          .
-                                                                                                          showsPrec
-                                                                                                            d
-                                                                                                            (getField
-                                                                                                               @"maxPerStageDescriptorUpdateAfterBindInputAttachments"
-                                                                                                               x)
-                                                                                                            .
-                                                                                                            showString
-                                                                                                              ", "
-                                                                                                              .
-                                                                                                              showString
-                                                                                                                "maxPerStageUpdateAfterBindResources = "
-                                                                                                                .
-                                                                                                                showsPrec
-                                                                                                                  d
-                                                                                                                  (getField
-                                                                                                                     @"maxPerStageUpdateAfterBindResources"
-                                                                                                                     x)
-                                                                                                                  .
-                                                                                                                  showString
-                                                                                                                    ", "
-                                                                                                                    .
-                                                                                                                    showString
-                                                                                                                      "maxDescriptorSetUpdateAfterBindSamplers = "
-                                                                                                                      .
-                                                                                                                      showsPrec
-                                                                                                                        d
-                                                                                                                        (getField
-                                                                                                                           @"maxDescriptorSetUpdateAfterBindSamplers"
-                                                                                                                           x)
-                                                                                                                        .
-                                                                                                                        showString
-                                                                                                                          ", "
-                                                                                                                          .
-                                                                                                                          showString
-                                                                                                                            "maxDescriptorSetUpdateAfterBindUniformBuffers = "
-                                                                                                                            .
-                                                                                                                            showsPrec
-                                                                                                                              d
-                                                                                                                              (getField
-                                                                                                                                 @"maxDescriptorSetUpdateAfterBindUniformBuffers"
-                                                                                                                                 x)
-                                                                                                                              .
-                                                                                                                              showString
-                                                                                                                                ", "
-                                                                                                                                .
-                                                                                                                                showString
-                                                                                                                                  "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = "
-                                                                                                                                  .
-                                                                                                                                  showsPrec
-                                                                                                                                    d
-                                                                                                                                    (getField
-                                                                                                                                       @"maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
-                                                                                                                                       x)
-                                                                                                                                    .
-                                                                                                                                    showString
-                                                                                                                                      ", "
-                                                                                                                                      .
-                                                                                                                                      showString
-                                                                                                                                        "maxDescriptorSetUpdateAfterBindStorageBuffers = "
-                                                                                                                                        .
-                                                                                                                                        showsPrec
-                                                                                                                                          d
-                                                                                                                                          (getField
-                                                                                                                                             @"maxDescriptorSetUpdateAfterBindStorageBuffers"
-                                                                                                                                             x)
-                                                                                                                                          .
-                                                                                                                                          showString
-                                                                                                                                            ", "
-                                                                                                                                            .
-                                                                                                                                            showString
-                                                                                                                                              "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = "
-                                                                                                                                              .
-                                                                                                                                              showsPrec
-                                                                                                                                                d
-                                                                                                                                                (getField
-                                                                                                                                                   @"maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
-                                                                                                                                                   x)
-                                                                                                                                                .
-                                                                                                                                                showString
-                                                                                                                                                  ", "
-                                                                                                                                                  .
-                                                                                                                                                  showString
-                                                                                                                                                    "maxDescriptorSetUpdateAfterBindSampledImages = "
-                                                                                                                                                    .
-                                                                                                                                                    showsPrec
-                                                                                                                                                      d
-                                                                                                                                                      (getField
-                                                                                                                                                         @"maxDescriptorSetUpdateAfterBindSampledImages"
-                                                                                                                                                         x)
-                                                                                                                                                      .
-                                                                                                                                                      showString
-                                                                                                                                                        ", "
-                                                                                                                                                        .
-                                                                                                                                                        showString
-                                                                                                                                                          "maxDescriptorSetUpdateAfterBindStorageImages = "
-                                                                                                                                                          .
-                                                                                                                                                          showsPrec
-                                                                                                                                                            d
-                                                                                                                                                            (getField
-                                                                                                                                                               @"maxDescriptorSetUpdateAfterBindStorageImages"
-                                                                                                                                                               x)
-                                                                                                                                                            .
-                                                                                                                                                            showString
-                                                                                                                                                              ", "
-                                                                                                                                                              .
-                                                                                                                                                              showString
-                                                                                                                                                                "maxDescriptorSetUpdateAfterBindInputAttachments = "
-                                                                                                                                                                .
-                                                                                                                                                                showsPrec
-                                                                                                                                                                  d
-                                                                                                                                                                  (getField
-                                                                                                                                                                     @"maxDescriptorSetUpdateAfterBindInputAttachments"
-                                                                                                                                                                     x)
-                                                                                                                                                                  .
-                                                                                                                                                                  showChar
-                                                                                                                                                                    '}'
-
--- | > typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
---   >     VkStructureType sType;
---   >     void*                  pNext;
---   >     uint32_t               maxDiscardRectangles;
---   > } VkPhysicalDeviceDiscardRectanglePropertiesEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceDiscardRectanglePropertiesEXT VkPhysicalDeviceDiscardRectanglePropertiesEXT registry at www.khronos.org>
-data VkPhysicalDeviceDiscardRectanglePropertiesEXT = VkPhysicalDeviceDiscardRectanglePropertiesEXT## Addr##
-                                                                                                    ByteArray##
-
-instance Eq VkPhysicalDeviceDiscardRectanglePropertiesEXT where
-        (VkPhysicalDeviceDiscardRectanglePropertiesEXT## a _) ==
-          x@(VkPhysicalDeviceDiscardRectanglePropertiesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceDiscardRectanglePropertiesEXT where
-        (VkPhysicalDeviceDiscardRectanglePropertiesEXT## a _) `compare`
-          x@(VkPhysicalDeviceDiscardRectanglePropertiesEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceDiscardRectanglePropertiesEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceDiscardRectanglePropertiesEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        unsafeAddr (VkPhysicalDeviceDiscardRectanglePropertiesEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPhysicalDeviceDiscardRectanglePropertiesEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceDiscardRectanglePropertiesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        type StructFields VkPhysicalDeviceDiscardRectanglePropertiesEXT =
-             '["sType", "pNext", "maxDiscardRectangles"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceDiscardRectanglePropertiesEXT =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceDiscardRectanglePropertiesEXT =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceDiscardRectanglePropertiesEXT =
-             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        type FieldType "sType"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        type FieldType "pNext"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDiscardRectangles"
-           VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        type FieldType "maxDiscardRectangles"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             = Word32
-        type FieldOptional "maxDiscardRectangles"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDiscardRectangles"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, maxDiscardRectangles}
-        type FieldIsArray "maxDiscardRectangles"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, maxDiscardRectangles}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDiscardRectangles"
-           VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, maxDiscardRectangles})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, maxDiscardRectangles}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDiscardRectangles"
-           VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, maxDiscardRectangles}
-
-instance Show VkPhysicalDeviceDiscardRectanglePropertiesEXT where
-        showsPrec d x
-          = showString "VkPhysicalDeviceDiscardRectanglePropertiesEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "maxDiscardRectangles = " .
-                            showsPrec d (getField @"maxDiscardRectangles" x) . showChar '}'
-
--- | > typedef struct VkPhysicalDeviceExternalBufferInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkBufferCreateFlags flags;
---   >     VkBufferUsageFlags               usage;
---   >     VkExternalMemoryHandleTypeFlagBits handleType;
---   > } VkPhysicalDeviceExternalBufferInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfo registry at www.khronos.org>
-data VkPhysicalDeviceExternalBufferInfo = VkPhysicalDeviceExternalBufferInfo## Addr##
-                                                                              ByteArray##
-
-instance Eq VkPhysicalDeviceExternalBufferInfo where
-        (VkPhysicalDeviceExternalBufferInfo## a _) ==
-          x@(VkPhysicalDeviceExternalBufferInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceExternalBufferInfo where
-        (VkPhysicalDeviceExternalBufferInfo## a _) `compare`
-          x@(VkPhysicalDeviceExternalBufferInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceExternalBufferInfo where
-        sizeOf ~_ = #{size VkPhysicalDeviceExternalBufferInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceExternalBufferInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceExternalBufferInfo where
-        unsafeAddr (VkPhysicalDeviceExternalBufferInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceExternalBufferInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceExternalBufferInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceExternalBufferInfo where
-        type StructFields VkPhysicalDeviceExternalBufferInfo =
-             '["sType", "pNext", "flags", "usage", "handleType"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceExternalBufferInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceExternalBufferInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceExternalBufferInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceExternalBufferInfo where
-        type FieldType "sType" VkPhysicalDeviceExternalBufferInfo =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceExternalBufferInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceExternalBufferInfo =
-             #{offset VkPhysicalDeviceExternalBufferInfo, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceExternalBufferInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalBufferInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceExternalBufferInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalBufferInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceExternalBufferInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceExternalBufferInfo where
-        type FieldType "pNext" VkPhysicalDeviceExternalBufferInfo =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceExternalBufferInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceExternalBufferInfo =
-             #{offset VkPhysicalDeviceExternalBufferInfo, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceExternalBufferInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalBufferInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceExternalBufferInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalBufferInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceExternalBufferInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkPhysicalDeviceExternalBufferInfo where
-        type FieldType "flags" VkPhysicalDeviceExternalBufferInfo =
-             VkBufferCreateFlags
-        type FieldOptional "flags" VkPhysicalDeviceExternalBufferInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkPhysicalDeviceExternalBufferInfo =
-             #{offset VkPhysicalDeviceExternalBufferInfo, flags}
-        type FieldIsArray "flags" VkPhysicalDeviceExternalBufferInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalBufferInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkPhysicalDeviceExternalBufferInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalBufferInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkPhysicalDeviceExternalBufferInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "usage" VkPhysicalDeviceExternalBufferInfo where
-        type FieldType "usage" VkPhysicalDeviceExternalBufferInfo =
-             VkBufferUsageFlags
-        type FieldOptional "usage" VkPhysicalDeviceExternalBufferInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "usage" VkPhysicalDeviceExternalBufferInfo =
-             #{offset VkPhysicalDeviceExternalBufferInfo, usage}
-        type FieldIsArray "usage" VkPhysicalDeviceExternalBufferInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalBufferInfo, usage}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "usage" VkPhysicalDeviceExternalBufferInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalBufferInfo, usage})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, usage}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "usage" VkPhysicalDeviceExternalBufferInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, usage}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkPhysicalDeviceExternalBufferInfo where
-        type FieldType "handleType" VkPhysicalDeviceExternalBufferInfo =
-             VkExternalMemoryHandleTypeFlagBits
-        type FieldOptional "handleType" VkPhysicalDeviceExternalBufferInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "handleType" VkPhysicalDeviceExternalBufferInfo =
-             #{offset VkPhysicalDeviceExternalBufferInfo, handleType}
-        type FieldIsArray "handleType" VkPhysicalDeviceExternalBufferInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalBufferInfo, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkPhysicalDeviceExternalBufferInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalBufferInfo, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkPhysicalDeviceExternalBufferInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, handleType}
-
-instance Show VkPhysicalDeviceExternalBufferInfo where
-        showsPrec d x
-          = showString "VkPhysicalDeviceExternalBufferInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "usage = " .
-                                  showsPrec d (getField @"usage" x) .
-                                    showString ", " .
-                                      showString "handleType = " .
-                                        showsPrec d (getField @"handleType" x) . showChar '}'
-
--- | Alias for `VkPhysicalDeviceExternalBufferInfo`
-type VkPhysicalDeviceExternalBufferInfoKHR =
-     VkPhysicalDeviceExternalBufferInfo
-
--- | > typedef struct VkPhysicalDeviceExternalFenceInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkExternalFenceHandleTypeFlagBits handleType;
---   > } VkPhysicalDeviceExternalFenceInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfo registry at www.khronos.org>
-data VkPhysicalDeviceExternalFenceInfo = VkPhysicalDeviceExternalFenceInfo## Addr##
-                                                                            ByteArray##
-
-instance Eq VkPhysicalDeviceExternalFenceInfo where
-        (VkPhysicalDeviceExternalFenceInfo## a _) ==
-          x@(VkPhysicalDeviceExternalFenceInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceExternalFenceInfo where
-        (VkPhysicalDeviceExternalFenceInfo## a _) `compare`
-          x@(VkPhysicalDeviceExternalFenceInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceExternalFenceInfo where
-        sizeOf ~_ = #{size VkPhysicalDeviceExternalFenceInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceExternalFenceInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceExternalFenceInfo where
-        unsafeAddr (VkPhysicalDeviceExternalFenceInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceExternalFenceInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceExternalFenceInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceExternalFenceInfo where
-        type StructFields VkPhysicalDeviceExternalFenceInfo =
-             '["sType", "pNext", "handleType"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceExternalFenceInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceExternalFenceInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceExternalFenceInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceExternalFenceInfo where
-        type FieldType "sType" VkPhysicalDeviceExternalFenceInfo =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceExternalFenceInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceExternalFenceInfo =
-             #{offset VkPhysicalDeviceExternalFenceInfo, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceExternalFenceInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalFenceInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceExternalFenceInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalFenceInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceExternalFenceInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceExternalFenceInfo where
-        type FieldType "pNext" VkPhysicalDeviceExternalFenceInfo = Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceExternalFenceInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceExternalFenceInfo =
-             #{offset VkPhysicalDeviceExternalFenceInfo, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceExternalFenceInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalFenceInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceExternalFenceInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalFenceInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceExternalFenceInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkPhysicalDeviceExternalFenceInfo where
-        type FieldType "handleType" VkPhysicalDeviceExternalFenceInfo =
-             VkExternalFenceHandleTypeFlagBits
-        type FieldOptional "handleType" VkPhysicalDeviceExternalFenceInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "handleType" VkPhysicalDeviceExternalFenceInfo =
-             #{offset VkPhysicalDeviceExternalFenceInfo, handleType}
-        type FieldIsArray "handleType" VkPhysicalDeviceExternalFenceInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalFenceInfo, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkPhysicalDeviceExternalFenceInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalFenceInfo, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkPhysicalDeviceExternalFenceInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, handleType}
-
-instance Show VkPhysicalDeviceExternalFenceInfo where
-        showsPrec d x
-          = showString "VkPhysicalDeviceExternalFenceInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "handleType = " .
-                            showsPrec d (getField @"handleType" x) . showChar '}'
-
--- | Alias for `VkPhysicalDeviceExternalFenceInfo`
-type VkPhysicalDeviceExternalFenceInfoKHR =
-     VkPhysicalDeviceExternalFenceInfo
-
--- | > typedef struct VkPhysicalDeviceExternalImageFormatInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkExternalMemoryHandleTypeFlagBits handleType;
---   > } VkPhysicalDeviceExternalImageFormatInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfo registry at www.khronos.org>
-data VkPhysicalDeviceExternalImageFormatInfo = VkPhysicalDeviceExternalImageFormatInfo## Addr##
-                                                                                        ByteArray##
-
-instance Eq VkPhysicalDeviceExternalImageFormatInfo where
-        (VkPhysicalDeviceExternalImageFormatInfo## a _) ==
-          x@(VkPhysicalDeviceExternalImageFormatInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceExternalImageFormatInfo where
-        (VkPhysicalDeviceExternalImageFormatInfo## a _) `compare`
-          x@(VkPhysicalDeviceExternalImageFormatInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceExternalImageFormatInfo where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceExternalImageFormatInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceExternalImageFormatInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceExternalImageFormatInfo
-         where
-        unsafeAddr (VkPhysicalDeviceExternalImageFormatInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceExternalImageFormatInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceExternalImageFormatInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceExternalImageFormatInfo
-         where
-        type StructFields VkPhysicalDeviceExternalImageFormatInfo =
-             '["sType", "pNext", "handleType"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceExternalImageFormatInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceExternalImageFormatInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceExternalImageFormatInfo =
-             '[VkPhysicalDeviceImageFormatInfo2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceExternalImageFormatInfo where
-        type FieldType "sType" VkPhysicalDeviceExternalImageFormatInfo =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceExternalImageFormatInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceExternalImageFormatInfo =
-             #{offset VkPhysicalDeviceExternalImageFormatInfo, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceExternalImageFormatInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalImageFormatInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceExternalImageFormatInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalImageFormatInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceExternalImageFormatInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceExternalImageFormatInfo where
-        type FieldType "pNext" VkPhysicalDeviceExternalImageFormatInfo =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceExternalImageFormatInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceExternalImageFormatInfo =
-             #{offset VkPhysicalDeviceExternalImageFormatInfo, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceExternalImageFormatInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalImageFormatInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceExternalImageFormatInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalImageFormatInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceExternalImageFormatInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkPhysicalDeviceExternalImageFormatInfo where
-        type FieldType "handleType" VkPhysicalDeviceExternalImageFormatInfo
-             = VkExternalMemoryHandleTypeFlagBits
-        type FieldOptional "handleType"
-               VkPhysicalDeviceExternalImageFormatInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "handleType"
-               VkPhysicalDeviceExternalImageFormatInfo
-             =
-             #{offset VkPhysicalDeviceExternalImageFormatInfo, handleType}
-        type FieldIsArray "handleType"
-               VkPhysicalDeviceExternalImageFormatInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalImageFormatInfo, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkPhysicalDeviceExternalImageFormatInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalImageFormatInfo, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkPhysicalDeviceExternalImageFormatInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, handleType}
-
-instance Show VkPhysicalDeviceExternalImageFormatInfo where
-        showsPrec d x
-          = showString "VkPhysicalDeviceExternalImageFormatInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "handleType = " .
-                            showsPrec d (getField @"handleType" x) . showChar '}'
-
--- | Alias for `VkPhysicalDeviceExternalImageFormatInfo`
-type VkPhysicalDeviceExternalImageFormatInfoKHR =
-     VkPhysicalDeviceExternalImageFormatInfo
-
--- | > typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
---   >     VkStructureType sType;
---   >     void* pNext;
---   >     VkDeviceSize minImportedHostPointerAlignment;
---   > } VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceExternalMemoryHostPropertiesEXT VkPhysicalDeviceExternalMemoryHostPropertiesEXT registry at www.khronos.org>
-data VkPhysicalDeviceExternalMemoryHostPropertiesEXT = VkPhysicalDeviceExternalMemoryHostPropertiesEXT## Addr##
-                                                                                                        ByteArray##
-
-instance Eq VkPhysicalDeviceExternalMemoryHostPropertiesEXT where
-        (VkPhysicalDeviceExternalMemoryHostPropertiesEXT## a _) ==
-          x@(VkPhysicalDeviceExternalMemoryHostPropertiesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceExternalMemoryHostPropertiesEXT where
-        (VkPhysicalDeviceExternalMemoryHostPropertiesEXT## a _) `compare`
-          x@(VkPhysicalDeviceExternalMemoryHostPropertiesEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceExternalMemoryHostPropertiesEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceExternalMemoryHostPropertiesEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        unsafeAddr (VkPhysicalDeviceExternalMemoryHostPropertiesEXT## a _)
-          = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPhysicalDeviceExternalMemoryHostPropertiesEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceExternalMemoryHostPropertiesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        type StructFields VkPhysicalDeviceExternalMemoryHostPropertiesEXT =
-             '["sType", "pNext", "minImportedHostPointerAlignment"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceExternalMemoryHostPropertiesEXT =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceExternalMemoryHostPropertiesEXT =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        type FieldType "sType"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType"
-           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        type FieldType "pNext"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext"
-           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "minImportedHostPointerAlignment"
-           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        type FieldType "minImportedHostPointerAlignment"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             = VkDeviceSize
-        type FieldOptional "minImportedHostPointerAlignment"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minImportedHostPointerAlignment"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, minImportedHostPointerAlignment}
-        type FieldIsArray "minImportedHostPointerAlignment"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, minImportedHostPointerAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minImportedHostPointerAlignment"
-           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, minImportedHostPointerAlignment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, minImportedHostPointerAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minImportedHostPointerAlignment"
-           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, minImportedHostPointerAlignment}
-
-instance Show VkPhysicalDeviceExternalMemoryHostPropertiesEXT where
-        showsPrec d x
-          = showString "VkPhysicalDeviceExternalMemoryHostPropertiesEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "minImportedHostPointerAlignment = " .
-                            showsPrec d (getField @"minImportedHostPointerAlignment" x) .
-                              showChar '}'
-
--- | > typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkExternalSemaphoreHandleTypeFlagBits handleType;
---   > } VkPhysicalDeviceExternalSemaphoreInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfo registry at www.khronos.org>
-data VkPhysicalDeviceExternalSemaphoreInfo = VkPhysicalDeviceExternalSemaphoreInfo## Addr##
-                                                                                    ByteArray##
-
-instance Eq VkPhysicalDeviceExternalSemaphoreInfo where
-        (VkPhysicalDeviceExternalSemaphoreInfo## a _) ==
-          x@(VkPhysicalDeviceExternalSemaphoreInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceExternalSemaphoreInfo where
-        (VkPhysicalDeviceExternalSemaphoreInfo## a _) `compare`
-          x@(VkPhysicalDeviceExternalSemaphoreInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceExternalSemaphoreInfo where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceExternalSemaphoreInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceExternalSemaphoreInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceExternalSemaphoreInfo
-         where
-        unsafeAddr (VkPhysicalDeviceExternalSemaphoreInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceExternalSemaphoreInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceExternalSemaphoreInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceExternalSemaphoreInfo where
-        type StructFields VkPhysicalDeviceExternalSemaphoreInfo =
-             '["sType", "pNext", "handleType"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceExternalSemaphoreInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceExternalSemaphoreInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceExternalSemaphoreInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceExternalSemaphoreInfo where
-        type FieldType "sType" VkPhysicalDeviceExternalSemaphoreInfo =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceExternalSemaphoreInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceExternalSemaphoreInfo =
-             #{offset VkPhysicalDeviceExternalSemaphoreInfo, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceExternalSemaphoreInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalSemaphoreInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceExternalSemaphoreInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalSemaphoreInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceExternalSemaphoreInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceExternalSemaphoreInfo where
-        type FieldType "pNext" VkPhysicalDeviceExternalSemaphoreInfo =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceExternalSemaphoreInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceExternalSemaphoreInfo =
-             #{offset VkPhysicalDeviceExternalSemaphoreInfo, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceExternalSemaphoreInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalSemaphoreInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceExternalSemaphoreInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalSemaphoreInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceExternalSemaphoreInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkPhysicalDeviceExternalSemaphoreInfo where
-        type FieldType "handleType" VkPhysicalDeviceExternalSemaphoreInfo =
-             VkExternalSemaphoreHandleTypeFlagBits
-        type FieldOptional "handleType"
-               VkPhysicalDeviceExternalSemaphoreInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "handleType" VkPhysicalDeviceExternalSemaphoreInfo
-             =
-             #{offset VkPhysicalDeviceExternalSemaphoreInfo, handleType}
-        type FieldIsArray "handleType"
-               VkPhysicalDeviceExternalSemaphoreInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalSemaphoreInfo, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkPhysicalDeviceExternalSemaphoreInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalSemaphoreInfo, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkPhysicalDeviceExternalSemaphoreInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, handleType}
-
-instance Show VkPhysicalDeviceExternalSemaphoreInfo where
-        showsPrec d x
-          = showString "VkPhysicalDeviceExternalSemaphoreInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "handleType = " .
-                            showsPrec d (getField @"handleType" x) . showChar '}'
-
--- | Alias for `VkPhysicalDeviceExternalSemaphoreInfo`
-type VkPhysicalDeviceExternalSemaphoreInfoKHR =
-     VkPhysicalDeviceExternalSemaphoreInfo
-
--- | > typedef struct VkPhysicalDeviceFeatures2 {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkPhysicalDeviceFeatures         features;
---   > } VkPhysicalDeviceFeatures2;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2 registry at www.khronos.org>
-data VkPhysicalDeviceFeatures2 = VkPhysicalDeviceFeatures2## Addr##
-                                                            ByteArray##
-
-instance Eq VkPhysicalDeviceFeatures2 where
-        (VkPhysicalDeviceFeatures2## a _) ==
-          x@(VkPhysicalDeviceFeatures2## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceFeatures2 where
-        (VkPhysicalDeviceFeatures2## a _) `compare`
-          x@(VkPhysicalDeviceFeatures2## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceFeatures2 where
-        sizeOf ~_ = #{size VkPhysicalDeviceFeatures2}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkPhysicalDeviceFeatures2}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceFeatures2 where
-        unsafeAddr (VkPhysicalDeviceFeatures2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceFeatures2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceFeatures2## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceFeatures2 where
-        type StructFields VkPhysicalDeviceFeatures2 =
-             '["sType", "pNext", "features"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceFeatures2 =
-             '[VkDeviceCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceFeatures2 where
-        type FieldType "sType" VkPhysicalDeviceFeatures2 = VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceFeatures2 =
-             #{offset VkPhysicalDeviceFeatures2, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceFeatures2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures2, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceFeatures2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures2, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceFeatures2 where
-        type FieldType "pNext" VkPhysicalDeviceFeatures2 = Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceFeatures2 =
-             #{offset VkPhysicalDeviceFeatures2, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceFeatures2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures2, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceFeatures2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures2, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "features" VkPhysicalDeviceFeatures2 where
-        type FieldType "features" VkPhysicalDeviceFeatures2 =
-             VkPhysicalDeviceFeatures
-        type FieldOptional "features" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "features" VkPhysicalDeviceFeatures2 =
-             #{offset VkPhysicalDeviceFeatures2, features}
-        type FieldIsArray "features" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures2, features}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "features" VkPhysicalDeviceFeatures2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures2, features})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures2, features}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "features" VkPhysicalDeviceFeatures2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures2, features}
-
-instance Show VkPhysicalDeviceFeatures2 where
-        showsPrec d x
-          = showString "VkPhysicalDeviceFeatures2 {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "features = " .
-                            showsPrec d (getField @"features" x) . showChar '}'
-
--- | Alias for `VkPhysicalDeviceFeatures2`
-type VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2
-
--- | > typedef struct VkPhysicalDeviceGroupProperties {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     uint32_t                         physicalDeviceCount;
---   >     VkPhysicalDevice                 physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
---   >     VkBool32                         subsetAllocation;
---   > } VkPhysicalDeviceGroupProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupProperties registry at www.khronos.org>
-data VkPhysicalDeviceGroupProperties = VkPhysicalDeviceGroupProperties## Addr##
-                                                                        ByteArray##
-
-instance Eq VkPhysicalDeviceGroupProperties where
-        (VkPhysicalDeviceGroupProperties## a _) ==
-          x@(VkPhysicalDeviceGroupProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceGroupProperties where
-        (VkPhysicalDeviceGroupProperties## a _) `compare`
-          x@(VkPhysicalDeviceGroupProperties## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceGroupProperties where
-        sizeOf ~_ = #{size VkPhysicalDeviceGroupProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceGroupProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceGroupProperties where
-        unsafeAddr (VkPhysicalDeviceGroupProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceGroupProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceGroupProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceGroupProperties where
-        type StructFields VkPhysicalDeviceGroupProperties =
-             '["sType", "pNext", "physicalDeviceCount", "physicalDevices", -- ' closing tick for hsc2hs
-               "subsetAllocation"]
-        type CUnionType VkPhysicalDeviceGroupProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceGroupProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceGroupProperties = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceGroupProperties where
-        type FieldType "sType" VkPhysicalDeviceGroupProperties =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceGroupProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceGroupProperties =
-             #{offset VkPhysicalDeviceGroupProperties, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceGroupProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceGroupProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceGroupProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceGroupProperties, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceGroupProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceGroupProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceGroupProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceGroupProperties where
-        type FieldType "pNext" VkPhysicalDeviceGroupProperties = Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceGroupProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceGroupProperties =
-             #{offset VkPhysicalDeviceGroupProperties, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceGroupProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceGroupProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceGroupProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceGroupProperties, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceGroupProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceGroupProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceGroupProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "physicalDeviceCount" VkPhysicalDeviceGroupProperties
-         where
-        type FieldType "physicalDeviceCount"
-               VkPhysicalDeviceGroupProperties
-             = Word32
-        type FieldOptional "physicalDeviceCount"
-               VkPhysicalDeviceGroupProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "physicalDeviceCount"
-               VkPhysicalDeviceGroupProperties
-             =
-             #{offset VkPhysicalDeviceGroupProperties, physicalDeviceCount}
-        type FieldIsArray "physicalDeviceCount"
-               VkPhysicalDeviceGroupProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceGroupProperties, physicalDeviceCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "physicalDeviceCount" VkPhysicalDeviceGroupProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceGroupProperties, physicalDeviceCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceGroupProperties, physicalDeviceCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "physicalDeviceCount" VkPhysicalDeviceGroupProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceGroupProperties, physicalDeviceCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "physicalDevices" VkPhysicalDeviceGroupProperties where
-        type FieldType "physicalDevices" VkPhysicalDeviceGroupProperties =
-             VkPhysicalDevice
-        type FieldOptional "physicalDevices"
-               VkPhysicalDeviceGroupProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "physicalDevices" VkPhysicalDeviceGroupProperties
-             =
-             #{offset VkPhysicalDeviceGroupProperties, physicalDevices}
-        type FieldIsArray "physicalDevices" VkPhysicalDeviceGroupProperties
-             = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceGroupProperties, physicalDevices}
-
-instance {-# OVERLAPPING #-}
-         CanReadFieldArray "physicalDevices" VkPhysicalDeviceGroupProperties
-         where
-        type FieldArrayLength "physicalDevices"
-               VkPhysicalDeviceGroupProperties
-             = VK_MAX_DEVICE_GROUP_SIZE
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = VK_MAX_DEVICE_GROUP_SIZE
-
-        {-# INLINE getFieldArrayUnsafe #-}
-        getFieldArrayUnsafe i = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceGroupProperties, physicalDevices}
-                      + sizeOf (undefined :: VkPhysicalDevice) * i
-
-        {-# INLINE readFieldArrayUnsafe #-}
-        readFieldArrayUnsafe i p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceGroupProperties, physicalDevices}
-                 + sizeOf (undefined :: VkPhysicalDevice) * i)
-
-instance {-# OVERLAPPING #-}
-         CanWriteFieldArray "physicalDevices"
-           VkPhysicalDeviceGroupProperties
-         where
-        {-# INLINE writeFieldArrayUnsafe #-}
-        writeFieldArrayUnsafe i p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceGroupProperties, physicalDevices}
-                 + sizeOf (undefined :: VkPhysicalDevice) * i)
-
-instance {-# OVERLAPPING #-}
-         HasField "subsetAllocation" VkPhysicalDeviceGroupProperties where
-        type FieldType "subsetAllocation" VkPhysicalDeviceGroupProperties =
-             VkBool32
-        type FieldOptional "subsetAllocation"
-               VkPhysicalDeviceGroupProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "subsetAllocation" VkPhysicalDeviceGroupProperties
-             =
-             #{offset VkPhysicalDeviceGroupProperties, subsetAllocation}
-        type FieldIsArray "subsetAllocation"
-               VkPhysicalDeviceGroupProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceGroupProperties, subsetAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "subsetAllocation" VkPhysicalDeviceGroupProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceGroupProperties, subsetAllocation})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceGroupProperties, subsetAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "subsetAllocation" VkPhysicalDeviceGroupProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceGroupProperties, subsetAllocation}
-
-instance Show VkPhysicalDeviceGroupProperties where
-        showsPrec d x
-          = showString "VkPhysicalDeviceGroupProperties {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "physicalDeviceCount = " .
-                            showsPrec d (getField @"physicalDeviceCount" x) .
-                              showString ", " .
-                                (showString "physicalDevices = [" .
-                                   showsPrec d
-                                     (let s = sizeOf
-                                                (undefined ::
-                                                   FieldType "physicalDevices"
-                                                     VkPhysicalDeviceGroupProperties)
-                                          o = fieldOffset @"physicalDevices"
-                                                @VkPhysicalDeviceGroupProperties
-                                          f i
-                                            = peekByteOff (unsafePtr x) i ::
-                                                IO
-                                                  (FieldType "physicalDevices"
-                                                     VkPhysicalDeviceGroupProperties)
-                                        in
-                                        unsafeDupablePerformIO . mapM f $
-                                          map (\ i -> o + i * s)
-                                            [0 .. VK_MAX_DEVICE_GROUP_SIZE - 1])
-                                     . showChar ']')
-                                  .
-                                  showString ", " .
-                                    showString "subsetAllocation = " .
-                                      showsPrec d (getField @"subsetAllocation" x) . showChar '}'
-
--- | Alias for `VkPhysicalDeviceGroupProperties`
-type VkPhysicalDeviceGroupPropertiesKHR =
-     VkPhysicalDeviceGroupProperties
-
--- | > typedef struct VkPhysicalDeviceIDProperties {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     uint8_t                          deviceUUID[VK_UUID_SIZE];
---   >     uint8_t                          driverUUID[VK_UUID_SIZE];
---   >     uint8_t                          deviceLUID[VK_LUID_SIZE];
---   >     uint32_t                         deviceNodeMask;
---   >     VkBool32                         deviceLUIDValid;
---   > } VkPhysicalDeviceIDProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceIDProperties VkPhysicalDeviceIDProperties registry at www.khronos.org>
-data VkPhysicalDeviceIDProperties = VkPhysicalDeviceIDProperties## Addr##
-                                                                  ByteArray##
-
-instance Eq VkPhysicalDeviceIDProperties where
-        (VkPhysicalDeviceIDProperties## a _) ==
-          x@(VkPhysicalDeviceIDProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceIDProperties where
-        (VkPhysicalDeviceIDProperties## a _) `compare`
-          x@(VkPhysicalDeviceIDProperties## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceIDProperties where
-        sizeOf ~_ = #{size VkPhysicalDeviceIDProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceIDProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceIDProperties where
-        unsafeAddr (VkPhysicalDeviceIDProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceIDProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceIDProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceIDProperties where
-        type StructFields VkPhysicalDeviceIDProperties =
-             '["sType", "pNext", "deviceUUID", "driverUUID", "deviceLUID", -- ' closing tick for hsc2hs
-               "deviceNodeMask", "deviceLUIDValid"]
-        type CUnionType VkPhysicalDeviceIDProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceIDProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceIDProperties =
-             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceIDProperties where
-        type FieldType "sType" VkPhysicalDeviceIDProperties =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceIDProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceIDProperties =
-             #{offset VkPhysicalDeviceIDProperties, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceIDProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceIDProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceIDProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceIDProperties, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceIDProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceIDProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceIDProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceIDProperties where
-        type FieldType "pNext" VkPhysicalDeviceIDProperties = Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceIDProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceIDProperties =
-             #{offset VkPhysicalDeviceIDProperties, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceIDProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceIDProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceIDProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceIDProperties, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceIDProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceIDProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceIDProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceUUID" VkPhysicalDeviceIDProperties where
-        type FieldType "deviceUUID" VkPhysicalDeviceIDProperties = Word8
-        type FieldOptional "deviceUUID" VkPhysicalDeviceIDProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "deviceUUID" VkPhysicalDeviceIDProperties =
-             #{offset VkPhysicalDeviceIDProperties, deviceUUID}
-        type FieldIsArray "deviceUUID" VkPhysicalDeviceIDProperties = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceIDProperties, deviceUUID}
-
-instance {-# OVERLAPPING #-}
-         CanReadFieldArray "deviceUUID" VkPhysicalDeviceIDProperties where
-        type FieldArrayLength "deviceUUID" VkPhysicalDeviceIDProperties =
-             VK_UUID_SIZE
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = VK_UUID_SIZE
-
-        {-# INLINE getFieldArrayUnsafe #-}
-        getFieldArrayUnsafe i = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceIDProperties, deviceUUID} +
-                      sizeOf (undefined :: Word8) * i
-
-        {-# INLINE readFieldArrayUnsafe #-}
-        readFieldArrayUnsafe i p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceIDProperties, deviceUUID} +
-                 sizeOf (undefined :: Word8) * i)
-
-instance {-# OVERLAPPING #-}
-         CanWriteFieldArray "deviceUUID" VkPhysicalDeviceIDProperties where
-        {-# INLINE writeFieldArrayUnsafe #-}
-        writeFieldArrayUnsafe i p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceIDProperties, deviceUUID} +
-                 sizeOf (undefined :: Word8) * i)
-
-instance {-# OVERLAPPING #-}
-         HasField "driverUUID" VkPhysicalDeviceIDProperties where
-        type FieldType "driverUUID" VkPhysicalDeviceIDProperties = Word8
-        type FieldOptional "driverUUID" VkPhysicalDeviceIDProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "driverUUID" VkPhysicalDeviceIDProperties =
-             #{offset VkPhysicalDeviceIDProperties, driverUUID}
-        type FieldIsArray "driverUUID" VkPhysicalDeviceIDProperties = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceIDProperties, driverUUID}
-
-instance {-# OVERLAPPING #-}
-         CanReadFieldArray "driverUUID" VkPhysicalDeviceIDProperties where
-        type FieldArrayLength "driverUUID" VkPhysicalDeviceIDProperties =
-             VK_UUID_SIZE
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = VK_UUID_SIZE
-
-        {-# INLINE getFieldArrayUnsafe #-}
-        getFieldArrayUnsafe i = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceIDProperties, driverUUID} +
-                      sizeOf (undefined :: Word8) * i
-
-        {-# INLINE readFieldArrayUnsafe #-}
-        readFieldArrayUnsafe i p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceIDProperties, driverUUID} +
-                 sizeOf (undefined :: Word8) * i)
-
-instance {-# OVERLAPPING #-}
-         CanWriteFieldArray "driverUUID" VkPhysicalDeviceIDProperties where
-        {-# INLINE writeFieldArrayUnsafe #-}
-        writeFieldArrayUnsafe i p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceIDProperties, driverUUID} +
-                 sizeOf (undefined :: Word8) * i)
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceLUID" VkPhysicalDeviceIDProperties where
-        type FieldType "deviceLUID" VkPhysicalDeviceIDProperties = Word8
-        type FieldOptional "deviceLUID" VkPhysicalDeviceIDProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "deviceLUID" VkPhysicalDeviceIDProperties =
-             #{offset VkPhysicalDeviceIDProperties, deviceLUID}
-        type FieldIsArray "deviceLUID" VkPhysicalDeviceIDProperties = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceIDProperties, deviceLUID}
-
-instance {-# OVERLAPPING #-}
-         CanReadFieldArray "deviceLUID" VkPhysicalDeviceIDProperties where
-        type FieldArrayLength "deviceLUID" VkPhysicalDeviceIDProperties =
-             VK_LUID_SIZE
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = VK_LUID_SIZE
-
-        {-# INLINE getFieldArrayUnsafe #-}
-        getFieldArrayUnsafe i = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceIDProperties, deviceLUID} +
-                      sizeOf (undefined :: Word8) * i
-
-        {-# INLINE readFieldArrayUnsafe #-}
-        readFieldArrayUnsafe i p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceIDProperties, deviceLUID} +
-                 sizeOf (undefined :: Word8) * i)
-
-instance {-# OVERLAPPING #-}
-         CanWriteFieldArray "deviceLUID" VkPhysicalDeviceIDProperties where
-        {-# INLINE writeFieldArrayUnsafe #-}
-        writeFieldArrayUnsafe i p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceIDProperties, deviceLUID} +
-                 sizeOf (undefined :: Word8) * i)
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceNodeMask" VkPhysicalDeviceIDProperties where
-        type FieldType "deviceNodeMask" VkPhysicalDeviceIDProperties =
-             Word32
-        type FieldOptional "deviceNodeMask" VkPhysicalDeviceIDProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "deviceNodeMask" VkPhysicalDeviceIDProperties =
-             #{offset VkPhysicalDeviceIDProperties, deviceNodeMask}
-        type FieldIsArray "deviceNodeMask" VkPhysicalDeviceIDProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceIDProperties, deviceNodeMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "deviceNodeMask" VkPhysicalDeviceIDProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceIDProperties, deviceNodeMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceIDProperties, deviceNodeMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "deviceNodeMask" VkPhysicalDeviceIDProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceIDProperties, deviceNodeMask}
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceLUIDValid" VkPhysicalDeviceIDProperties where
-        type FieldType "deviceLUIDValid" VkPhysicalDeviceIDProperties =
-             VkBool32
-        type FieldOptional "deviceLUIDValid" VkPhysicalDeviceIDProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "deviceLUIDValid" VkPhysicalDeviceIDProperties =
-             #{offset VkPhysicalDeviceIDProperties, deviceLUIDValid}
-        type FieldIsArray "deviceLUIDValid" VkPhysicalDeviceIDProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceIDProperties, deviceLUIDValid}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "deviceLUIDValid" VkPhysicalDeviceIDProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceIDProperties, deviceLUIDValid})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceIDProperties, deviceLUIDValid}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "deviceLUIDValid" VkPhysicalDeviceIDProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceIDProperties, deviceLUIDValid}
-
-instance Show VkPhysicalDeviceIDProperties where
-        showsPrec d x
-          = showString "VkPhysicalDeviceIDProperties {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          (showString "deviceUUID = [" .
-                             showsPrec d
-                               (let s = sizeOf
-                                          (undefined ::
-                                             FieldType "deviceUUID" VkPhysicalDeviceIDProperties)
-                                    o = fieldOffset @"deviceUUID" @VkPhysicalDeviceIDProperties
-                                    f i
-                                      = peekByteOff (unsafePtr x) i ::
-                                          IO (FieldType "deviceUUID" VkPhysicalDeviceIDProperties)
-                                  in
-                                  unsafeDupablePerformIO . mapM f $
-                                    map (\ i -> o + i * s) [0 .. VK_UUID_SIZE - 1])
-                               . showChar ']')
-                            .
-                            showString ", " .
-                              (showString "driverUUID = [" .
-                                 showsPrec d
-                                   (let s = sizeOf
-                                              (undefined ::
-                                                 FieldType "driverUUID"
-                                                   VkPhysicalDeviceIDProperties)
-                                        o = fieldOffset @"driverUUID" @VkPhysicalDeviceIDProperties
-                                        f i
-                                          = peekByteOff (unsafePtr x) i ::
-                                              IO
-                                                (FieldType "driverUUID"
-                                                   VkPhysicalDeviceIDProperties)
-                                      in
-                                      unsafeDupablePerformIO . mapM f $
-                                        map (\ i -> o + i * s) [0 .. VK_UUID_SIZE - 1])
-                                   . showChar ']')
-                                .
-                                showString ", " .
-                                  (showString "deviceLUID = [" .
-                                     showsPrec d
-                                       (let s = sizeOf
-                                                  (undefined ::
-                                                     FieldType "deviceLUID"
-                                                       VkPhysicalDeviceIDProperties)
-                                            o = fieldOffset @"deviceLUID"
-                                                  @VkPhysicalDeviceIDProperties
-                                            f i
-                                              = peekByteOff (unsafePtr x) i ::
-                                                  IO
-                                                    (FieldType "deviceLUID"
-                                                       VkPhysicalDeviceIDProperties)
-                                          in
-                                          unsafeDupablePerformIO . mapM f $
-                                            map (\ i -> o + i * s) [0 .. VK_LUID_SIZE - 1])
-                                       . showChar ']')
-                                    .
-                                    showString ", " .
-                                      showString "deviceNodeMask = " .
-                                        showsPrec d (getField @"deviceNodeMask" x) .
-                                          showString ", " .
-                                            showString "deviceLUIDValid = " .
-                                              showsPrec d (getField @"deviceLUIDValid" x) .
-                                                showChar '}'
-
--- | Alias for `VkPhysicalDeviceIDProperties`
-type VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties
-
--- | > typedef struct VkPhysicalDeviceImageFormatInfo2 {
---   >     VkStructureType sType;
---   >     const void* pNext;
---   >     VkFormat                         format;
---   >     VkImageType                      type;
---   >     VkImageTiling                    tiling;
---   >     VkImageUsageFlags                usage;
---   >     VkImageCreateFlags flags;
---   > } VkPhysicalDeviceImageFormatInfo2;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2 registry at www.khronos.org>
-data VkPhysicalDeviceImageFormatInfo2 = VkPhysicalDeviceImageFormatInfo2## Addr##
-                                                                          ByteArray##
-
-instance Eq VkPhysicalDeviceImageFormatInfo2 where
-        (VkPhysicalDeviceImageFormatInfo2## a _) ==
-          x@(VkPhysicalDeviceImageFormatInfo2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceImageFormatInfo2 where
-        (VkPhysicalDeviceImageFormatInfo2## a _) `compare`
-          x@(VkPhysicalDeviceImageFormatInfo2## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceImageFormatInfo2 where
-        sizeOf ~_ = #{size VkPhysicalDeviceImageFormatInfo2}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceImageFormatInfo2}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceImageFormatInfo2 where
-        unsafeAddr (VkPhysicalDeviceImageFormatInfo2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceImageFormatInfo2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceImageFormatInfo2##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceImageFormatInfo2 where
-        type StructFields VkPhysicalDeviceImageFormatInfo2 =
-             '["sType", "pNext", "format", "type", "tiling", "usage", "flags"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceImageFormatInfo2 = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceImageFormatInfo2 where
-        type FieldType "sType" VkPhysicalDeviceImageFormatInfo2 =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceImageFormatInfo2 =
-             #{offset VkPhysicalDeviceImageFormatInfo2, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceImageFormatInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceImageFormatInfo2 where
-        type FieldType "pNext" VkPhysicalDeviceImageFormatInfo2 = Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceImageFormatInfo2 =
-             #{offset VkPhysicalDeviceImageFormatInfo2, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceImageFormatInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "format" VkPhysicalDeviceImageFormatInfo2 where
-        type FieldType "format" VkPhysicalDeviceImageFormatInfo2 = VkFormat
-        type FieldOptional "format" VkPhysicalDeviceImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "format" VkPhysicalDeviceImageFormatInfo2 =
-             #{offset VkPhysicalDeviceImageFormatInfo2, format}
-        type FieldIsArray "format" VkPhysicalDeviceImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceImageFormatInfo2, format}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "format" VkPhysicalDeviceImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, format})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, format}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "format" VkPhysicalDeviceImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, format}
-
-instance {-# OVERLAPPING #-}
-         HasField "type" VkPhysicalDeviceImageFormatInfo2 where
-        type FieldType "type" VkPhysicalDeviceImageFormatInfo2 =
-             VkImageType
-        type FieldOptional "type" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "type" VkPhysicalDeviceImageFormatInfo2 =
-             #{offset VkPhysicalDeviceImageFormatInfo2, type}
-        type FieldIsArray "type" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceImageFormatInfo2, type}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "type" VkPhysicalDeviceImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, type})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, type}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "type" VkPhysicalDeviceImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, type}
-
-instance {-# OVERLAPPING #-}
-         HasField "tiling" VkPhysicalDeviceImageFormatInfo2 where
-        type FieldType "tiling" VkPhysicalDeviceImageFormatInfo2 =
-             VkImageTiling
-        type FieldOptional "tiling" VkPhysicalDeviceImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "tiling" VkPhysicalDeviceImageFormatInfo2 =
-             #{offset VkPhysicalDeviceImageFormatInfo2, tiling}
-        type FieldIsArray "tiling" VkPhysicalDeviceImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceImageFormatInfo2, tiling}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "tiling" VkPhysicalDeviceImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, tiling})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, tiling}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "tiling" VkPhysicalDeviceImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, tiling}
-
-instance {-# OVERLAPPING #-}
-         HasField "usage" VkPhysicalDeviceImageFormatInfo2 where
-        type FieldType "usage" VkPhysicalDeviceImageFormatInfo2 =
-             VkImageUsageFlags
-        type FieldOptional "usage" VkPhysicalDeviceImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "usage" VkPhysicalDeviceImageFormatInfo2 =
-             #{offset VkPhysicalDeviceImageFormatInfo2, usage}
-        type FieldIsArray "usage" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceImageFormatInfo2, usage}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "usage" VkPhysicalDeviceImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, usage})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, usage}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "usage" VkPhysicalDeviceImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, usage}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkPhysicalDeviceImageFormatInfo2 where
-        type FieldType "flags" VkPhysicalDeviceImageFormatInfo2 =
-             VkImageCreateFlags
-        type FieldOptional "flags" VkPhysicalDeviceImageFormatInfo2 = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkPhysicalDeviceImageFormatInfo2 =
-             #{offset VkPhysicalDeviceImageFormatInfo2, flags}
-        type FieldIsArray "flags" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceImageFormatInfo2, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkPhysicalDeviceImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkPhysicalDeviceImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, flags}
-
-instance Show VkPhysicalDeviceImageFormatInfo2 where
-        showsPrec d x
-          = showString "VkPhysicalDeviceImageFormatInfo2 {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "format = " .
-                            showsPrec d (getField @"format" x) .
-                              showString ", " .
-                                showString "type = " .
-                                  showsPrec d (getField @"type" x) .
-                                    showString ", " .
-                                      showString "tiling = " .
-                                        showsPrec d (getField @"tiling" x) .
-                                          showString ", " .
-                                            showString "usage = " .
-                                              showsPrec d (getField @"usage" x) .
-                                                showString ", " .
-                                                  showString "flags = " .
-                                                    showsPrec d (getField @"flags" x) . showChar '}'
-
--- | Alias for `VkPhysicalDeviceImageFormatInfo2`
-type VkPhysicalDeviceImageFormatInfo2KHR =
-     VkPhysicalDeviceImageFormatInfo2
-
--- | > typedef struct VkPhysicalDeviceLimits {
---   >     uint32_t               maxImageDimension1D;
---   >     uint32_t               maxImageDimension2D;
---   >     uint32_t               maxImageDimension3D;
---   >     uint32_t               maxImageDimensionCube;
---   >     uint32_t               maxImageArrayLayers;
---   >     uint32_t               maxTexelBufferElements;
---   >     uint32_t               maxUniformBufferRange;
---   >     uint32_t               maxStorageBufferRange;
---   >     uint32_t               maxPushConstantsSize;
---   >     uint32_t               maxMemoryAllocationCount;
---   >     uint32_t               maxSamplerAllocationCount;
---   >     VkDeviceSize           bufferImageGranularity;
---   >     VkDeviceSize           sparseAddressSpaceSize;
---   >     uint32_t               maxBoundDescriptorSets;
---   >     uint32_t               maxPerStageDescriptorSamplers;
---   >     uint32_t               maxPerStageDescriptorUniformBuffers;
---   >     uint32_t               maxPerStageDescriptorStorageBuffers;
---   >     uint32_t               maxPerStageDescriptorSampledImages;
---   >     uint32_t               maxPerStageDescriptorStorageImages;
---   >     uint32_t               maxPerStageDescriptorInputAttachments;
---   >     uint32_t               maxPerStageResources;
---   >     uint32_t               maxDescriptorSetSamplers;
---   >     uint32_t               maxDescriptorSetUniformBuffers;
---   >     uint32_t               maxDescriptorSetUniformBuffersDynamic;
---   >     uint32_t               maxDescriptorSetStorageBuffers;
---   >     uint32_t               maxDescriptorSetStorageBuffersDynamic;
---   >     uint32_t               maxDescriptorSetSampledImages;
---   >     uint32_t               maxDescriptorSetStorageImages;
---   >     uint32_t               maxDescriptorSetInputAttachments;
---   >     uint32_t               maxVertexInputAttributes;
---   >     uint32_t               maxVertexInputBindings;
---   >     uint32_t               maxVertexInputAttributeOffset;
---   >     uint32_t               maxVertexInputBindingStride;
---   >     uint32_t               maxVertexOutputComponents;
---   >     uint32_t               maxTessellationGenerationLevel;
---   >     uint32_t               maxTessellationPatchSize;
---   >     uint32_t               maxTessellationControlPerVertexInputComponents;
---   >     uint32_t               maxTessellationControlPerVertexOutputComponents;
---   >     uint32_t               maxTessellationControlPerPatchOutputComponents;
---   >     uint32_t               maxTessellationControlTotalOutputComponents;
---   >     uint32_t               maxTessellationEvaluationInputComponents;
---   >     uint32_t               maxTessellationEvaluationOutputComponents;
---   >     uint32_t               maxGeometryShaderInvocations;
---   >     uint32_t               maxGeometryInputComponents;
---   >     uint32_t               maxGeometryOutputComponents;
---   >     uint32_t               maxGeometryOutputVertices;
---   >     uint32_t               maxGeometryTotalOutputComponents;
---   >     uint32_t               maxFragmentInputComponents;
---   >     uint32_t               maxFragmentOutputAttachments;
---   >     uint32_t               maxFragmentDualSrcAttachments;
---   >     uint32_t               maxFragmentCombinedOutputResources;
---   >     uint32_t               maxComputeSharedMemorySize;
---   >     uint32_t               maxComputeWorkGroupCount[3];
---   >     uint32_t               maxComputeWorkGroupInvocations;
---   >     uint32_t               maxComputeWorkGroupSize[3];
---   >     uint32_t               subPixelPrecisionBits;
---   >     uint32_t               subTexelPrecisionBits;
---   >     uint32_t               mipmapPrecisionBits;
---   >     uint32_t               maxDrawIndexedIndexValue;
---   >     uint32_t               maxDrawIndirectCount;
---   >     float                  maxSamplerLodBias;
---   >     float                  maxSamplerAnisotropy;
---   >     uint32_t               maxViewports;
---   >     uint32_t               maxViewportDimensions[2];
---   >     float                  viewportBoundsRange[2];
---   >     uint32_t               viewportSubPixelBits;
---   >     size_t                 minMemoryMapAlignment;
---   >     VkDeviceSize           minTexelBufferOffsetAlignment;
---   >     VkDeviceSize           minUniformBufferOffsetAlignment;
---   >     VkDeviceSize           minStorageBufferOffsetAlignment;
---   >     int32_t                minTexelOffset;
---   >     uint32_t               maxTexelOffset;
---   >     int32_t                minTexelGatherOffset;
---   >     uint32_t               maxTexelGatherOffset;
---   >     float                  minInterpolationOffset;
---   >     float                  maxInterpolationOffset;
---   >     uint32_t               subPixelInterpolationOffsetBits;
---   >     uint32_t               maxFramebufferWidth;
---   >     uint32_t               maxFramebufferHeight;
---   >     uint32_t               maxFramebufferLayers;
---   >     VkSampleCountFlags     framebufferColorSampleCounts;
---   >     VkSampleCountFlags     framebufferDepthSampleCounts;
---   >     VkSampleCountFlags     framebufferStencilSampleCounts;
---   >     VkSampleCountFlags     framebufferNoAttachmentsSampleCounts;
---   >     uint32_t               maxColorAttachments;
---   >     VkSampleCountFlags     sampledImageColorSampleCounts;
---   >     VkSampleCountFlags     sampledImageIntegerSampleCounts;
---   >     VkSampleCountFlags     sampledImageDepthSampleCounts;
---   >     VkSampleCountFlags     sampledImageStencilSampleCounts;
---   >     VkSampleCountFlags     storageImageSampleCounts;
---   >     uint32_t               maxSampleMaskWords;
---   >     VkBool32               timestampComputeAndGraphics;
---   >     float                  timestampPeriod;
---   >     uint32_t               maxClipDistances;
---   >     uint32_t               maxCullDistances;
---   >     uint32_t               maxCombinedClipAndCullDistances;
---   >     uint32_t               discreteQueuePriorities;
---   >     float                  pointSizeRange[2];
---   >     float                  lineWidthRange[2];
---   >     float                  pointSizeGranularity;
---   >     float                  lineWidthGranularity;
---   >     VkBool32               strictLines;
---   >     VkBool32               standardSampleLocations;
---   >     VkDeviceSize           optimalBufferCopyOffsetAlignment;
---   >     VkDeviceSize           optimalBufferCopyRowPitchAlignment;
---   >     VkDeviceSize           nonCoherentAtomSize;
---   > } VkPhysicalDeviceLimits;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceLimits VkPhysicalDeviceLimits registry at www.khronos.org>
-data VkPhysicalDeviceLimits = VkPhysicalDeviceLimits## Addr##
-                                                      ByteArray##
-
-instance Eq VkPhysicalDeviceLimits where
-        (VkPhysicalDeviceLimits## a _) == x@(VkPhysicalDeviceLimits## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceLimits where
-        (VkPhysicalDeviceLimits## a _) `compare`
-          x@(VkPhysicalDeviceLimits## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceLimits where
-        sizeOf ~_ = #{size VkPhysicalDeviceLimits}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkPhysicalDeviceLimits}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceLimits where
-        unsafeAddr (VkPhysicalDeviceLimits## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceLimits## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceLimits## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceLimits where
-        type StructFields VkPhysicalDeviceLimits =
-             '["maxImageDimension1D", "maxImageDimension2D", -- ' closing tick for hsc2hs
-               "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",
-               "maxComputeWorkGroupCount", "maxComputeWorkGroupInvocations",
-               "maxComputeWorkGroupSize", "subPixelPrecisionBits",
-               "subTexelPrecisionBits", "mipmapPrecisionBits",
-               "maxDrawIndexedIndexValue", "maxDrawIndirectCount",
-               "maxSamplerLodBias", "maxSamplerAnisotropy", "maxViewports",
-               "maxViewportDimensions", "viewportBoundsRange",
-               "viewportSubPixelBits", "minMemoryMapAlignment",
-               "minTexelBufferOffsetAlignment", "minUniformBufferOffsetAlignment",
-               "minStorageBufferOffsetAlignment", "minTexelOffset",
-               "maxTexelOffset", "minTexelGatherOffset", "maxTexelGatherOffset",
-               "minInterpolationOffset", "maxInterpolationOffset",
-               "subPixelInterpolationOffsetBits", "maxFramebufferWidth",
-               "maxFramebufferHeight", "maxFramebufferLayers",
-               "framebufferColorSampleCounts", "framebufferDepthSampleCounts",
-               "framebufferStencilSampleCounts",
-               "framebufferNoAttachmentsSampleCounts", "maxColorAttachments",
-               "sampledImageColorSampleCounts", "sampledImageIntegerSampleCounts",
-               "sampledImageDepthSampleCounts", "sampledImageStencilSampleCounts",
-               "storageImageSampleCounts", "maxSampleMaskWords",
-               "timestampComputeAndGraphics", "timestampPeriod",
-               "maxClipDistances", "maxCullDistances",
-               "maxCombinedClipAndCullDistances", "discreteQueuePriorities",
-               "pointSizeRange", "lineWidthRange", "pointSizeGranularity",
-               "lineWidthGranularity", "strictLines", "standardSampleLocations",
-               "optimalBufferCopyOffsetAlignment",
-               "optimalBufferCopyRowPitchAlignment", "nonCoherentAtomSize"]
-        type CUnionType VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceLimits = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceLimits = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "maxImageDimension1D" VkPhysicalDeviceLimits where
-        type FieldType "maxImageDimension1D" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxImageDimension1D" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxImageDimension1D" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxImageDimension1D}
-        type FieldIsArray "maxImageDimension1D" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxImageDimension1D}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxImageDimension1D" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxImageDimension1D})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension1D}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxImageDimension1D" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension1D}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxImageDimension2D" VkPhysicalDeviceLimits where
-        type FieldType "maxImageDimension2D" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxImageDimension2D" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxImageDimension2D" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxImageDimension2D}
-        type FieldIsArray "maxImageDimension2D" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxImageDimension2D}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxImageDimension2D" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxImageDimension2D})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension2D}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxImageDimension2D" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension2D}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxImageDimension3D" VkPhysicalDeviceLimits where
-        type FieldType "maxImageDimension3D" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxImageDimension3D" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxImageDimension3D" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxImageDimension3D}
-        type FieldIsArray "maxImageDimension3D" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxImageDimension3D}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxImageDimension3D" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxImageDimension3D})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension3D}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxImageDimension3D" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension3D}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxImageDimensionCube" VkPhysicalDeviceLimits where
-        type FieldType "maxImageDimensionCube" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxImageDimensionCube" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxImageDimensionCube" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxImageDimensionCube}
-        type FieldIsArray "maxImageDimensionCube" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxImageDimensionCube}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxImageDimensionCube" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxImageDimensionCube})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimensionCube}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxImageDimensionCube" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimensionCube}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxImageArrayLayers" VkPhysicalDeviceLimits where
-        type FieldType "maxImageArrayLayers" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxImageArrayLayers" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxImageArrayLayers" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxImageArrayLayers}
-        type FieldIsArray "maxImageArrayLayers" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxImageArrayLayers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxImageArrayLayers" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxImageArrayLayers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxImageArrayLayers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxImageArrayLayers" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxImageArrayLayers}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTexelBufferElements" VkPhysicalDeviceLimits where
-        type FieldType "maxTexelBufferElements" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxTexelBufferElements" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTexelBufferElements" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxTexelBufferElements}
-        type FieldIsArray "maxTexelBufferElements" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTexelBufferElements}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTexelBufferElements" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTexelBufferElements})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTexelBufferElements}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTexelBufferElements" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTexelBufferElements}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxUniformBufferRange" VkPhysicalDeviceLimits where
-        type FieldType "maxUniformBufferRange" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxUniformBufferRange" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxUniformBufferRange" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxUniformBufferRange}
-        type FieldIsArray "maxUniformBufferRange" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxUniformBufferRange}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxUniformBufferRange" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxUniformBufferRange})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxUniformBufferRange}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxUniformBufferRange" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxUniformBufferRange}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxStorageBufferRange" VkPhysicalDeviceLimits where
-        type FieldType "maxStorageBufferRange" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxStorageBufferRange" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxStorageBufferRange" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxStorageBufferRange}
-        type FieldIsArray "maxStorageBufferRange" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxStorageBufferRange}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxStorageBufferRange" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxStorageBufferRange})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxStorageBufferRange}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxStorageBufferRange" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxStorageBufferRange}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPushConstantsSize" VkPhysicalDeviceLimits where
-        type FieldType "maxPushConstantsSize" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxPushConstantsSize" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPushConstantsSize" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxPushConstantsSize}
-        type FieldIsArray "maxPushConstantsSize" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxPushConstantsSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPushConstantsSize" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPushConstantsSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPushConstantsSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPushConstantsSize" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPushConstantsSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxMemoryAllocationCount" VkPhysicalDeviceLimits where
-        type FieldType "maxMemoryAllocationCount" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxMemoryAllocationCount"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxMemoryAllocationCount" VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxMemoryAllocationCount}
-        type FieldIsArray "maxMemoryAllocationCount" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxMemoryAllocationCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxMemoryAllocationCount" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxMemoryAllocationCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxMemoryAllocationCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxMemoryAllocationCount" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxMemoryAllocationCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxSamplerAllocationCount" VkPhysicalDeviceLimits where
-        type FieldType "maxSamplerAllocationCount" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxSamplerAllocationCount"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxSamplerAllocationCount" VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxSamplerAllocationCount}
-        type FieldIsArray "maxSamplerAllocationCount"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxSamplerAllocationCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxSamplerAllocationCount" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxSamplerAllocationCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerAllocationCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxSamplerAllocationCount" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerAllocationCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "bufferImageGranularity" VkPhysicalDeviceLimits where
-        type FieldType "bufferImageGranularity" VkPhysicalDeviceLimits =
-             VkDeviceSize
-        type FieldOptional "bufferImageGranularity" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "bufferImageGranularity" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, bufferImageGranularity}
-        type FieldIsArray "bufferImageGranularity" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, bufferImageGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "bufferImageGranularity" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, bufferImageGranularity})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, bufferImageGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "bufferImageGranularity" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, bufferImageGranularity}
-
-instance {-# OVERLAPPING #-}
-         HasField "sparseAddressSpaceSize" VkPhysicalDeviceLimits where
-        type FieldType "sparseAddressSpaceSize" VkPhysicalDeviceLimits =
-             VkDeviceSize
-        type FieldOptional "sparseAddressSpaceSize" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sparseAddressSpaceSize" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, sparseAddressSpaceSize}
-        type FieldIsArray "sparseAddressSpaceSize" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, sparseAddressSpaceSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sparseAddressSpaceSize" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, sparseAddressSpaceSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, sparseAddressSpaceSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sparseAddressSpaceSize" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, sparseAddressSpaceSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxBoundDescriptorSets" VkPhysicalDeviceLimits where
-        type FieldType "maxBoundDescriptorSets" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxBoundDescriptorSets" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxBoundDescriptorSets" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxBoundDescriptorSets}
-        type FieldIsArray "maxBoundDescriptorSets" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxBoundDescriptorSets}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxBoundDescriptorSets" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxBoundDescriptorSets})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxBoundDescriptorSets}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxBoundDescriptorSets" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxBoundDescriptorSets}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageDescriptorSamplers" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxPerStageDescriptorSamplers"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxPerStageDescriptorSamplers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPerStageDescriptorSamplers"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers}
-        type FieldIsArray "maxPerStageDescriptorSamplers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageDescriptorSamplers" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerStageDescriptorSamplers"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageDescriptorUniformBuffers"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxPerStageDescriptorUniformBuffers"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxPerStageDescriptorUniformBuffers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPerStageDescriptorUniformBuffers"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers}
-        type FieldIsArray "maxPerStageDescriptorUniformBuffers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageDescriptorUniformBuffers"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerStageDescriptorUniformBuffers"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageDescriptorStorageBuffers"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxPerStageDescriptorStorageBuffers"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxPerStageDescriptorStorageBuffers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPerStageDescriptorStorageBuffers"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers}
-        type FieldIsArray "maxPerStageDescriptorStorageBuffers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageDescriptorStorageBuffers"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerStageDescriptorStorageBuffers"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageDescriptorSampledImages"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxPerStageDescriptorSampledImages"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxPerStageDescriptorSampledImages"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPerStageDescriptorSampledImages"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages}
-        type FieldIsArray "maxPerStageDescriptorSampledImages"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageDescriptorSampledImages"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerStageDescriptorSampledImages"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageDescriptorStorageImages"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxPerStageDescriptorStorageImages"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxPerStageDescriptorStorageImages"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPerStageDescriptorStorageImages"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages}
-        type FieldIsArray "maxPerStageDescriptorStorageImages"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageDescriptorStorageImages"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerStageDescriptorStorageImages"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageDescriptorInputAttachments"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxPerStageDescriptorInputAttachments"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxPerStageDescriptorInputAttachments"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPerStageDescriptorInputAttachments"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments}
-        type FieldIsArray "maxPerStageDescriptorInputAttachments"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageDescriptorInputAttachments"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerStageDescriptorInputAttachments"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageResources" VkPhysicalDeviceLimits where
-        type FieldType "maxPerStageResources" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxPerStageResources" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPerStageResources" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxPerStageResources}
-        type FieldIsArray "maxPerStageResources" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxPerStageResources}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageResources" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageResources})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageResources}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerStageResources" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageResources}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetSamplers" VkPhysicalDeviceLimits where
-        type FieldType "maxDescriptorSetSamplers" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxDescriptorSetSamplers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetSamplers" VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxDescriptorSetSamplers}
-        type FieldIsArray "maxDescriptorSetSamplers" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetSamplers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetSamplers" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetSamplers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetSamplers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetSamplers" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetSamplers}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetUniformBuffers" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxDescriptorSetUniformBuffers"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxDescriptorSetUniformBuffers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetUniformBuffers"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers}
-        type FieldIsArray "maxDescriptorSetUniformBuffers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetUniformBuffers"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetUniformBuffers"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetUniformBuffersDynamic"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxDescriptorSetUniformBuffersDynamic"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxDescriptorSetUniformBuffersDynamic"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetUniformBuffersDynamic"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic}
-        type FieldIsArray "maxDescriptorSetUniformBuffersDynamic"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetUniformBuffersDynamic"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetUniformBuffersDynamic"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetStorageBuffers" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxDescriptorSetStorageBuffers"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxDescriptorSetStorageBuffers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetStorageBuffers"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers}
-        type FieldIsArray "maxDescriptorSetStorageBuffers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetStorageBuffers"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetStorageBuffers"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetStorageBuffersDynamic"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxDescriptorSetStorageBuffersDynamic"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxDescriptorSetStorageBuffersDynamic"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetStorageBuffersDynamic"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic}
-        type FieldIsArray "maxDescriptorSetStorageBuffersDynamic"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetStorageBuffersDynamic"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetStorageBuffersDynamic"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetSampledImages" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxDescriptorSetSampledImages"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxDescriptorSetSampledImages"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetSampledImages"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxDescriptorSetSampledImages}
-        type FieldIsArray "maxDescriptorSetSampledImages"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetSampledImages}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetSampledImages" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetSampledImages})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetSampledImages}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetSampledImages"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetSampledImages}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetStorageImages" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxDescriptorSetStorageImages"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxDescriptorSetStorageImages"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetStorageImages"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageImages}
-        type FieldIsArray "maxDescriptorSetStorageImages"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageImages}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetStorageImages" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageImages})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageImages}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetStorageImages"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageImages}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetInputAttachments" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxDescriptorSetInputAttachments"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxDescriptorSetInputAttachments"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetInputAttachments"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments}
-        type FieldIsArray "maxDescriptorSetInputAttachments"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetInputAttachments"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetInputAttachments"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxVertexInputAttributes" VkPhysicalDeviceLimits where
-        type FieldType "maxVertexInputAttributes" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxVertexInputAttributes"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxVertexInputAttributes" VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxVertexInputAttributes}
-        type FieldIsArray "maxVertexInputAttributes" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxVertexInputAttributes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxVertexInputAttributes" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxVertexInputAttributes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputAttributes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxVertexInputAttributes" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputAttributes}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxVertexInputBindings" VkPhysicalDeviceLimits where
-        type FieldType "maxVertexInputBindings" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxVertexInputBindings" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxVertexInputBindings" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxVertexInputBindings}
-        type FieldIsArray "maxVertexInputBindings" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxVertexInputBindings}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxVertexInputBindings" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxVertexInputBindings})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputBindings}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxVertexInputBindings" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputBindings}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxVertexInputAttributeOffset" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxVertexInputAttributeOffset"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxVertexInputAttributeOffset"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxVertexInputAttributeOffset"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxVertexInputAttributeOffset}
-        type FieldIsArray "maxVertexInputAttributeOffset"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxVertexInputAttributeOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxVertexInputAttributeOffset" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxVertexInputAttributeOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputAttributeOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxVertexInputAttributeOffset"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputAttributeOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxVertexInputBindingStride" VkPhysicalDeviceLimits where
-        type FieldType "maxVertexInputBindingStride" VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxVertexInputBindingStride"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxVertexInputBindingStride"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxVertexInputBindingStride}
-        type FieldIsArray "maxVertexInputBindingStride"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxVertexInputBindingStride}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxVertexInputBindingStride" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxVertexInputBindingStride})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputBindingStride}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxVertexInputBindingStride" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputBindingStride}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxVertexOutputComponents" VkPhysicalDeviceLimits where
-        type FieldType "maxVertexOutputComponents" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxVertexOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxVertexOutputComponents" VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxVertexOutputComponents}
-        type FieldIsArray "maxVertexOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxVertexOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxVertexOutputComponents" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxVertexOutputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxVertexOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxVertexOutputComponents" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxVertexOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTessellationGenerationLevel" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxTessellationGenerationLevel"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxTessellationGenerationLevel"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTessellationGenerationLevel"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxTessellationGenerationLevel}
-        type FieldIsArray "maxTessellationGenerationLevel"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTessellationGenerationLevel}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTessellationGenerationLevel"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationGenerationLevel})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationGenerationLevel}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTessellationGenerationLevel"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationGenerationLevel}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTessellationPatchSize" VkPhysicalDeviceLimits where
-        type FieldType "maxTessellationPatchSize" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxTessellationPatchSize"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTessellationPatchSize" VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxTessellationPatchSize}
-        type FieldIsArray "maxTessellationPatchSize" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTessellationPatchSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTessellationPatchSize" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationPatchSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationPatchSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTessellationPatchSize" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationPatchSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTessellationControlPerVertexInputComponents"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxTessellationControlPerVertexInputComponents"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxTessellationControlPerVertexInputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTessellationControlPerVertexInputComponents"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents}
-        type FieldIsArray "maxTessellationControlPerVertexInputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTessellationControlPerVertexInputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTessellationControlPerVertexInputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTessellationControlPerVertexOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxTessellationControlPerVertexOutputComponents"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional
-               "maxTessellationControlPerVertexOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTessellationControlPerVertexOutputComponents"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents}
-        type FieldIsArray "maxTessellationControlPerVertexOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTessellationControlPerVertexOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTessellationControlPerVertexOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTessellationControlPerPatchOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxTessellationControlPerPatchOutputComponents"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxTessellationControlPerPatchOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTessellationControlPerPatchOutputComponents"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents}
-        type FieldIsArray "maxTessellationControlPerPatchOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTessellationControlPerPatchOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTessellationControlPerPatchOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTessellationControlTotalOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxTessellationControlTotalOutputComponents"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxTessellationControlTotalOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTessellationControlTotalOutputComponents"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents}
-        type FieldIsArray "maxTessellationControlTotalOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTessellationControlTotalOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTessellationControlTotalOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTessellationEvaluationInputComponents"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxTessellationEvaluationInputComponents"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxTessellationEvaluationInputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTessellationEvaluationInputComponents"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents}
-        type FieldIsArray "maxTessellationEvaluationInputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTessellationEvaluationInputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTessellationEvaluationInputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTessellationEvaluationOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxTessellationEvaluationOutputComponents"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxTessellationEvaluationOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTessellationEvaluationOutputComponents"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents}
-        type FieldIsArray "maxTessellationEvaluationOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTessellationEvaluationOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTessellationEvaluationOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxGeometryShaderInvocations" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxGeometryShaderInvocations"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxGeometryShaderInvocations"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxGeometryShaderInvocations"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxGeometryShaderInvocations}
-        type FieldIsArray "maxGeometryShaderInvocations"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxGeometryShaderInvocations}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxGeometryShaderInvocations" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxGeometryShaderInvocations})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryShaderInvocations}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxGeometryShaderInvocations" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryShaderInvocations}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxGeometryInputComponents" VkPhysicalDeviceLimits where
-        type FieldType "maxGeometryInputComponents" VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxGeometryInputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxGeometryInputComponents"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxGeometryInputComponents}
-        type FieldIsArray "maxGeometryInputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxGeometryInputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxGeometryInputComponents" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxGeometryInputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryInputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxGeometryInputComponents" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryInputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxGeometryOutputComponents" VkPhysicalDeviceLimits where
-        type FieldType "maxGeometryOutputComponents" VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxGeometryOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxGeometryOutputComponents"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxGeometryOutputComponents}
-        type FieldIsArray "maxGeometryOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxGeometryOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxGeometryOutputComponents" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxGeometryOutputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxGeometryOutputComponents" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxGeometryOutputVertices" VkPhysicalDeviceLimits where
-        type FieldType "maxGeometryOutputVertices" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxGeometryOutputVertices"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxGeometryOutputVertices" VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxGeometryOutputVertices}
-        type FieldIsArray "maxGeometryOutputVertices"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxGeometryOutputVertices}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxGeometryOutputVertices" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxGeometryOutputVertices})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryOutputVertices}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxGeometryOutputVertices" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryOutputVertices}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxGeometryTotalOutputComponents" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxGeometryTotalOutputComponents"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxGeometryTotalOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxGeometryTotalOutputComponents"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents}
-        type FieldIsArray "maxGeometryTotalOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxGeometryTotalOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxGeometryTotalOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxFragmentInputComponents" VkPhysicalDeviceLimits where
-        type FieldType "maxFragmentInputComponents" VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxFragmentInputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxFragmentInputComponents"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxFragmentInputComponents}
-        type FieldIsArray "maxFragmentInputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxFragmentInputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxFragmentInputComponents" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFragmentInputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentInputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxFragmentInputComponents" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentInputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxFragmentOutputAttachments" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxFragmentOutputAttachments"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxFragmentOutputAttachments"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxFragmentOutputAttachments"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxFragmentOutputAttachments}
-        type FieldIsArray "maxFragmentOutputAttachments"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxFragmentOutputAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxFragmentOutputAttachments" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFragmentOutputAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentOutputAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxFragmentOutputAttachments" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentOutputAttachments}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxFragmentDualSrcAttachments" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxFragmentDualSrcAttachments"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxFragmentDualSrcAttachments"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxFragmentDualSrcAttachments"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments}
-        type FieldIsArray "maxFragmentDualSrcAttachments"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxFragmentDualSrcAttachments" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxFragmentDualSrcAttachments"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxFragmentCombinedOutputResources"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxFragmentCombinedOutputResources"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxFragmentCombinedOutputResources"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxFragmentCombinedOutputResources"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources}
-        type FieldIsArray "maxFragmentCombinedOutputResources"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxFragmentCombinedOutputResources"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxFragmentCombinedOutputResources"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxComputeSharedMemorySize" VkPhysicalDeviceLimits where
-        type FieldType "maxComputeSharedMemorySize" VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxComputeSharedMemorySize"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxComputeSharedMemorySize"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxComputeSharedMemorySize}
-        type FieldIsArray "maxComputeSharedMemorySize"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxComputeSharedMemorySize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxComputeSharedMemorySize" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxComputeSharedMemorySize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxComputeSharedMemorySize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxComputeSharedMemorySize" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxComputeSharedMemorySize}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxComputeWorkGroupCount" VkPhysicalDeviceLimits where
-        type FieldType "maxComputeWorkGroupCount" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxComputeWorkGroupCount"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxComputeWorkGroupCount" VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}
-        type FieldIsArray "maxComputeWorkGroupCount" VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadFieldArray "maxComputeWorkGroupCount" VkPhysicalDeviceLimits
-         where
-        type FieldArrayLength "maxComputeWorkGroupCount"
-               VkPhysicalDeviceLimits
-             = 3
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 3
-
-        {-# INLINE getFieldArrayUnsafe #-}
-        getFieldArrayUnsafe i = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}
-                      + sizeOf (undefined :: Word32) * i
-
-        {-# INLINE readFieldArrayUnsafe #-}
-        readFieldArrayUnsafe i p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}
-                 + sizeOf (undefined :: Word32) * i)
-
-instance {-# OVERLAPPING #-}
-         CanWriteFieldArray "maxComputeWorkGroupCount"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeFieldArrayUnsafe #-}
-        writeFieldArrayUnsafe i p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}
-                 + sizeOf (undefined :: Word32) * i)
-
-instance {-# OVERLAPPING #-}
-         HasField "maxComputeWorkGroupInvocations" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxComputeWorkGroupInvocations"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxComputeWorkGroupInvocations"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxComputeWorkGroupInvocations"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations}
-        type FieldIsArray "maxComputeWorkGroupInvocations"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxComputeWorkGroupInvocations"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxComputeWorkGroupInvocations"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxComputeWorkGroupSize" VkPhysicalDeviceLimits where
-        type FieldType "maxComputeWorkGroupSize" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxComputeWorkGroupSize" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxComputeWorkGroupSize" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}
-        type FieldIsArray "maxComputeWorkGroupSize" VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadFieldArray "maxComputeWorkGroupSize" VkPhysicalDeviceLimits
-         where
-        type FieldArrayLength "maxComputeWorkGroupSize"
-               VkPhysicalDeviceLimits
-             = 3
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 3
-
-        {-# INLINE getFieldArrayUnsafe #-}
-        getFieldArrayUnsafe i = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}
-                      + sizeOf (undefined :: Word32) * i
-
-        {-# INLINE readFieldArrayUnsafe #-}
-        readFieldArrayUnsafe i p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}
-                 + sizeOf (undefined :: Word32) * i)
-
-instance {-# OVERLAPPING #-}
-         CanWriteFieldArray "maxComputeWorkGroupSize" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeFieldArrayUnsafe #-}
-        writeFieldArrayUnsafe i p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}
-                 + sizeOf (undefined :: Word32) * i)
-
-instance {-# OVERLAPPING #-}
-         HasField "subPixelPrecisionBits" VkPhysicalDeviceLimits where
-        type FieldType "subPixelPrecisionBits" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "subPixelPrecisionBits" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "subPixelPrecisionBits" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, subPixelPrecisionBits}
-        type FieldIsArray "subPixelPrecisionBits" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, subPixelPrecisionBits}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "subPixelPrecisionBits" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, subPixelPrecisionBits})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, subPixelPrecisionBits}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "subPixelPrecisionBits" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, subPixelPrecisionBits}
-
-instance {-# OVERLAPPING #-}
-         HasField "subTexelPrecisionBits" VkPhysicalDeviceLimits where
-        type FieldType "subTexelPrecisionBits" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "subTexelPrecisionBits" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "subTexelPrecisionBits" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, subTexelPrecisionBits}
-        type FieldIsArray "subTexelPrecisionBits" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, subTexelPrecisionBits}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "subTexelPrecisionBits" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, subTexelPrecisionBits})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, subTexelPrecisionBits}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "subTexelPrecisionBits" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, subTexelPrecisionBits}
-
-instance {-# OVERLAPPING #-}
-         HasField "mipmapPrecisionBits" VkPhysicalDeviceLimits where
-        type FieldType "mipmapPrecisionBits" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "mipmapPrecisionBits" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "mipmapPrecisionBits" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, mipmapPrecisionBits}
-        type FieldIsArray "mipmapPrecisionBits" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, mipmapPrecisionBits}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "mipmapPrecisionBits" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, mipmapPrecisionBits})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, mipmapPrecisionBits}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "mipmapPrecisionBits" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, mipmapPrecisionBits}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits where
-        type FieldType "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxDrawIndexedIndexValue"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxDrawIndexedIndexValue}
-        type FieldIsArray "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxDrawIndexedIndexValue}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDrawIndexedIndexValue})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDrawIndexedIndexValue}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDrawIndexedIndexValue}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDrawIndirectCount" VkPhysicalDeviceLimits where
-        type FieldType "maxDrawIndirectCount" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxDrawIndirectCount" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDrawIndirectCount" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxDrawIndirectCount}
-        type FieldIsArray "maxDrawIndirectCount" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxDrawIndirectCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDrawIndirectCount" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDrawIndirectCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDrawIndirectCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDrawIndirectCount" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDrawIndirectCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxSamplerLodBias" VkPhysicalDeviceLimits where
-        type FieldType "maxSamplerLodBias" VkPhysicalDeviceLimits =
-             #{type float}
-        type FieldOptional "maxSamplerLodBias" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxSamplerLodBias" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxSamplerLodBias}
-        type FieldIsArray "maxSamplerLodBias" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxSamplerLodBias}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxSamplerLodBias" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxSamplerLodBias})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerLodBias}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxSamplerLodBias" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerLodBias}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxSamplerAnisotropy" VkPhysicalDeviceLimits where
-        type FieldType "maxSamplerAnisotropy" VkPhysicalDeviceLimits =
-             #{type float}
-        type FieldOptional "maxSamplerAnisotropy" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxSamplerAnisotropy" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxSamplerAnisotropy}
-        type FieldIsArray "maxSamplerAnisotropy" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxSamplerAnisotropy}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxSamplerAnisotropy" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxSamplerAnisotropy})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerAnisotropy}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxSamplerAnisotropy" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerAnisotropy}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxViewports" VkPhysicalDeviceLimits where
-        type FieldType "maxViewports" VkPhysicalDeviceLimits = Word32
-        type FieldOptional "maxViewports" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxViewports" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxViewports}
-        type FieldIsArray "maxViewports" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxViewports}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxViewports" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxViewports})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxViewports}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxViewports" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxViewports}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxViewportDimensions" VkPhysicalDeviceLimits where
-        type FieldType "maxViewportDimensions" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxViewportDimensions" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxViewportDimensions" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxViewportDimensions}
-        type FieldIsArray "maxViewportDimensions" VkPhysicalDeviceLimits =
-             'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxViewportDimensions}
-
-instance {-# OVERLAPPING #-}
-         CanReadFieldArray "maxViewportDimensions" VkPhysicalDeviceLimits
-         where
-        type FieldArrayLength "maxViewportDimensions"
-               VkPhysicalDeviceLimits
-             = 2
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 2
-
-        {-# INLINE getFieldArrayUnsafe #-}
-        getFieldArrayUnsafe i = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceLimits, maxViewportDimensions}
-                      + sizeOf (undefined :: Word32) * i
-
-        {-# INLINE readFieldArrayUnsafe #-}
-        readFieldArrayUnsafe i p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceLimits, maxViewportDimensions}
-                 + sizeOf (undefined :: Word32) * i)
-
-instance {-# OVERLAPPING #-}
-         CanWriteFieldArray "maxViewportDimensions" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeFieldArrayUnsafe #-}
-        writeFieldArrayUnsafe i p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceLimits, maxViewportDimensions}
-                 + sizeOf (undefined :: Word32) * i)
-
-instance {-# OVERLAPPING #-}
-         HasField "viewportBoundsRange" VkPhysicalDeviceLimits where
-        type FieldType "viewportBoundsRange" VkPhysicalDeviceLimits =
-             #{type float}
-        type FieldOptional "viewportBoundsRange" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "viewportBoundsRange" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, viewportBoundsRange}
-        type FieldIsArray "viewportBoundsRange" VkPhysicalDeviceLimits =
-             'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, viewportBoundsRange}
-
-instance {-# OVERLAPPING #-}
-         CanReadFieldArray "viewportBoundsRange" VkPhysicalDeviceLimits
-         where
-        type FieldArrayLength "viewportBoundsRange" VkPhysicalDeviceLimits
-             = 2
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 2
-
-        {-# INLINE getFieldArrayUnsafe #-}
-        getFieldArrayUnsafe i = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceLimits, viewportBoundsRange}
-                      + sizeOf (undefined :: #{type float}) * i
-
-        {-# INLINE readFieldArrayUnsafe #-}
-        readFieldArrayUnsafe i p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceLimits, viewportBoundsRange}
-                 + sizeOf (undefined :: #{type float}) * i)
-
-instance {-# OVERLAPPING #-}
-         CanWriteFieldArray "viewportBoundsRange" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeFieldArrayUnsafe #-}
-        writeFieldArrayUnsafe i p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceLimits, viewportBoundsRange}
-                 + sizeOf (undefined :: #{type float}) * i)
-
-instance {-# OVERLAPPING #-}
-         HasField "viewportSubPixelBits" VkPhysicalDeviceLimits where
-        type FieldType "viewportSubPixelBits" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "viewportSubPixelBits" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "viewportSubPixelBits" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, viewportSubPixelBits}
-        type FieldIsArray "viewportSubPixelBits" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, viewportSubPixelBits}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "viewportSubPixelBits" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, viewportSubPixelBits})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, viewportSubPixelBits}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "viewportSubPixelBits" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, viewportSubPixelBits}
-
-instance {-# OVERLAPPING #-}
-         HasField "minMemoryMapAlignment" VkPhysicalDeviceLimits where
-        type FieldType "minMemoryMapAlignment" VkPhysicalDeviceLimits =
-             CSize
-        type FieldOptional "minMemoryMapAlignment" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "minMemoryMapAlignment" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, minMemoryMapAlignment}
-        type FieldIsArray "minMemoryMapAlignment" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, minMemoryMapAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minMemoryMapAlignment" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minMemoryMapAlignment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, minMemoryMapAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minMemoryMapAlignment" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minMemoryMapAlignment}
-
-instance {-# OVERLAPPING #-}
-         HasField "minTexelBufferOffsetAlignment" VkPhysicalDeviceLimits
-         where
-        type FieldType "minTexelBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = VkDeviceSize
-        type FieldOptional "minTexelBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minTexelBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment}
-        type FieldIsArray "minTexelBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minTexelBufferOffsetAlignment" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minTexelBufferOffsetAlignment"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         HasField "minUniformBufferOffsetAlignment" VkPhysicalDeviceLimits
-         where
-        type FieldType "minUniformBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = VkDeviceSize
-        type FieldOptional "minUniformBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minUniformBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment}
-        type FieldIsArray "minUniformBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minUniformBufferOffsetAlignment"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minUniformBufferOffsetAlignment"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         HasField "minStorageBufferOffsetAlignment" VkPhysicalDeviceLimits
-         where
-        type FieldType "minStorageBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = VkDeviceSize
-        type FieldOptional "minStorageBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minStorageBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment}
-        type FieldIsArray "minStorageBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minStorageBufferOffsetAlignment"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minStorageBufferOffsetAlignment"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         HasField "minTexelOffset" VkPhysicalDeviceLimits where
-        type FieldType "minTexelOffset" VkPhysicalDeviceLimits = Int32
-        type FieldOptional "minTexelOffset" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minTexelOffset" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, minTexelOffset}
-        type FieldIsArray "minTexelOffset" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, minTexelOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minTexelOffset" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minTexelOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, minTexelOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minTexelOffset" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minTexelOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTexelOffset" VkPhysicalDeviceLimits where
-        type FieldType "maxTexelOffset" VkPhysicalDeviceLimits = Word32
-        type FieldOptional "maxTexelOffset" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTexelOffset" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxTexelOffset}
-        type FieldIsArray "maxTexelOffset" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTexelOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTexelOffset" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTexelOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTexelOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTexelOffset" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTexelOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "minTexelGatherOffset" VkPhysicalDeviceLimits where
-        type FieldType "minTexelGatherOffset" VkPhysicalDeviceLimits =
-             Int32
-        type FieldOptional "minTexelGatherOffset" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "minTexelGatherOffset" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, minTexelGatherOffset}
-        type FieldIsArray "minTexelGatherOffset" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, minTexelGatherOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minTexelGatherOffset" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minTexelGatherOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, minTexelGatherOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minTexelGatherOffset" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minTexelGatherOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTexelGatherOffset" VkPhysicalDeviceLimits where
-        type FieldType "maxTexelGatherOffset" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxTexelGatherOffset" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTexelGatherOffset" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxTexelGatherOffset}
-        type FieldIsArray "maxTexelGatherOffset" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTexelGatherOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTexelGatherOffset" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTexelGatherOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTexelGatherOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTexelGatherOffset" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTexelGatherOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "minInterpolationOffset" VkPhysicalDeviceLimits where
-        type FieldType "minInterpolationOffset" VkPhysicalDeviceLimits =
-             #{type float}
-        type FieldOptional "minInterpolationOffset" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minInterpolationOffset" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, minInterpolationOffset}
-        type FieldIsArray "minInterpolationOffset" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, minInterpolationOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minInterpolationOffset" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minInterpolationOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, minInterpolationOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minInterpolationOffset" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minInterpolationOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxInterpolationOffset" VkPhysicalDeviceLimits where
-        type FieldType "maxInterpolationOffset" VkPhysicalDeviceLimits =
-             #{type float}
-        type FieldOptional "maxInterpolationOffset" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxInterpolationOffset" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxInterpolationOffset}
-        type FieldIsArray "maxInterpolationOffset" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxInterpolationOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxInterpolationOffset" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxInterpolationOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxInterpolationOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxInterpolationOffset" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxInterpolationOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "subPixelInterpolationOffsetBits" VkPhysicalDeviceLimits
-         where
-        type FieldType "subPixelInterpolationOffsetBits"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "subPixelInterpolationOffsetBits"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "subPixelInterpolationOffsetBits"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits}
-        type FieldIsArray "subPixelInterpolationOffsetBits"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "subPixelInterpolationOffsetBits"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "subPixelInterpolationOffsetBits"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxFramebufferWidth" VkPhysicalDeviceLimits where
-        type FieldType "maxFramebufferWidth" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxFramebufferWidth" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxFramebufferWidth" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxFramebufferWidth}
-        type FieldIsArray "maxFramebufferWidth" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxFramebufferWidth}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxFramebufferWidth" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFramebufferWidth})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferWidth}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxFramebufferWidth" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferWidth}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxFramebufferHeight" VkPhysicalDeviceLimits where
-        type FieldType "maxFramebufferHeight" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxFramebufferHeight" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxFramebufferHeight" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxFramebufferHeight}
-        type FieldIsArray "maxFramebufferHeight" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxFramebufferHeight}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxFramebufferHeight" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFramebufferHeight})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferHeight}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxFramebufferHeight" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferHeight}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxFramebufferLayers" VkPhysicalDeviceLimits where
-        type FieldType "maxFramebufferLayers" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxFramebufferLayers" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxFramebufferLayers" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxFramebufferLayers}
-        type FieldIsArray "maxFramebufferLayers" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxFramebufferLayers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxFramebufferLayers" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFramebufferLayers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferLayers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxFramebufferLayers" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferLayers}
-
-instance {-# OVERLAPPING #-}
-         HasField "framebufferColorSampleCounts" VkPhysicalDeviceLimits
-         where
-        type FieldType "framebufferColorSampleCounts"
-               VkPhysicalDeviceLimits
-             = VkSampleCountFlags
-        type FieldOptional "framebufferColorSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "framebufferColorSampleCounts"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, framebufferColorSampleCounts}
-        type FieldIsArray "framebufferColorSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, framebufferColorSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "framebufferColorSampleCounts" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, framebufferColorSampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, framebufferColorSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "framebufferColorSampleCounts" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, framebufferColorSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "framebufferDepthSampleCounts" VkPhysicalDeviceLimits
-         where
-        type FieldType "framebufferDepthSampleCounts"
-               VkPhysicalDeviceLimits
-             = VkSampleCountFlags
-        type FieldOptional "framebufferDepthSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "framebufferDepthSampleCounts"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, framebufferDepthSampleCounts}
-        type FieldIsArray "framebufferDepthSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, framebufferDepthSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "framebufferDepthSampleCounts" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, framebufferDepthSampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, framebufferDepthSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "framebufferDepthSampleCounts" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, framebufferDepthSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "framebufferStencilSampleCounts" VkPhysicalDeviceLimits
-         where
-        type FieldType "framebufferStencilSampleCounts"
-               VkPhysicalDeviceLimits
-             = VkSampleCountFlags
-        type FieldOptional "framebufferStencilSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "framebufferStencilSampleCounts"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, framebufferStencilSampleCounts}
-        type FieldIsArray "framebufferStencilSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, framebufferStencilSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "framebufferStencilSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, framebufferStencilSampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, framebufferStencilSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "framebufferStencilSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, framebufferStencilSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "framebufferNoAttachmentsSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "framebufferNoAttachmentsSampleCounts"
-               VkPhysicalDeviceLimits
-             = VkSampleCountFlags
-        type FieldOptional "framebufferNoAttachmentsSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "framebufferNoAttachmentsSampleCounts"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts}
-        type FieldIsArray "framebufferNoAttachmentsSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "framebufferNoAttachmentsSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "framebufferNoAttachmentsSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxColorAttachments" VkPhysicalDeviceLimits where
-        type FieldType "maxColorAttachments" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxColorAttachments" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxColorAttachments" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxColorAttachments}
-        type FieldIsArray "maxColorAttachments" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxColorAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxColorAttachments" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxColorAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxColorAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxColorAttachments" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxColorAttachments}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampledImageColorSampleCounts" VkPhysicalDeviceLimits
-         where
-        type FieldType "sampledImageColorSampleCounts"
-               VkPhysicalDeviceLimits
-             = VkSampleCountFlags
-        type FieldOptional "sampledImageColorSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "sampledImageColorSampleCounts"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, sampledImageColorSampleCounts}
-        type FieldIsArray "sampledImageColorSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, sampledImageColorSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampledImageColorSampleCounts" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, sampledImageColorSampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, sampledImageColorSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampledImageColorSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, sampledImageColorSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampledImageIntegerSampleCounts" VkPhysicalDeviceLimits
-         where
-        type FieldType "sampledImageIntegerSampleCounts"
-               VkPhysicalDeviceLimits
-             = VkSampleCountFlags
-        type FieldOptional "sampledImageIntegerSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "sampledImageIntegerSampleCounts"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts}
-        type FieldIsArray "sampledImageIntegerSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampledImageIntegerSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampledImageIntegerSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampledImageDepthSampleCounts" VkPhysicalDeviceLimits
-         where
-        type FieldType "sampledImageDepthSampleCounts"
-               VkPhysicalDeviceLimits
-             = VkSampleCountFlags
-        type FieldOptional "sampledImageDepthSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "sampledImageDepthSampleCounts"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, sampledImageDepthSampleCounts}
-        type FieldIsArray "sampledImageDepthSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, sampledImageDepthSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampledImageDepthSampleCounts" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, sampledImageDepthSampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, sampledImageDepthSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampledImageDepthSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, sampledImageDepthSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampledImageStencilSampleCounts" VkPhysicalDeviceLimits
-         where
-        type FieldType "sampledImageStencilSampleCounts"
-               VkPhysicalDeviceLimits
-             = VkSampleCountFlags
-        type FieldOptional "sampledImageStencilSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "sampledImageStencilSampleCounts"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, sampledImageStencilSampleCounts}
-        type FieldIsArray "sampledImageStencilSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, sampledImageStencilSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampledImageStencilSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, sampledImageStencilSampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, sampledImageStencilSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampledImageStencilSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, sampledImageStencilSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "storageImageSampleCounts" VkPhysicalDeviceLimits where
-        type FieldType "storageImageSampleCounts" VkPhysicalDeviceLimits =
-             VkSampleCountFlags
-        type FieldOptional "storageImageSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "storageImageSampleCounts" VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, storageImageSampleCounts}
-        type FieldIsArray "storageImageSampleCounts" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, storageImageSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "storageImageSampleCounts" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, storageImageSampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, storageImageSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "storageImageSampleCounts" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, storageImageSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxSampleMaskWords" VkPhysicalDeviceLimits where
-        type FieldType "maxSampleMaskWords" VkPhysicalDeviceLimits = Word32
-        type FieldOptional "maxSampleMaskWords" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxSampleMaskWords" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxSampleMaskWords}
-        type FieldIsArray "maxSampleMaskWords" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxSampleMaskWords}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxSampleMaskWords" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxSampleMaskWords})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxSampleMaskWords}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxSampleMaskWords" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxSampleMaskWords}
-
-instance {-# OVERLAPPING #-}
-         HasField "timestampComputeAndGraphics" VkPhysicalDeviceLimits where
-        type FieldType "timestampComputeAndGraphics" VkPhysicalDeviceLimits
-             = VkBool32
-        type FieldOptional "timestampComputeAndGraphics"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "timestampComputeAndGraphics"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, timestampComputeAndGraphics}
-        type FieldIsArray "timestampComputeAndGraphics"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, timestampComputeAndGraphics}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "timestampComputeAndGraphics" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, timestampComputeAndGraphics})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, timestampComputeAndGraphics}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "timestampComputeAndGraphics" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, timestampComputeAndGraphics}
-
-instance {-# OVERLAPPING #-}
-         HasField "timestampPeriod" VkPhysicalDeviceLimits where
-        type FieldType "timestampPeriod" VkPhysicalDeviceLimits =
-             #{type float}
-        type FieldOptional "timestampPeriod" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "timestampPeriod" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, timestampPeriod}
-        type FieldIsArray "timestampPeriod" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, timestampPeriod}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "timestampPeriod" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, timestampPeriod})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, timestampPeriod}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "timestampPeriod" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, timestampPeriod}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxClipDistances" VkPhysicalDeviceLimits where
-        type FieldType "maxClipDistances" VkPhysicalDeviceLimits = Word32
-        type FieldOptional "maxClipDistances" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxClipDistances" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxClipDistances}
-        type FieldIsArray "maxClipDistances" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxClipDistances}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxClipDistances" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxClipDistances})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxClipDistances}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxClipDistances" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxClipDistances}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxCullDistances" VkPhysicalDeviceLimits where
-        type FieldType "maxCullDistances" VkPhysicalDeviceLimits = Word32
-        type FieldOptional "maxCullDistances" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxCullDistances" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxCullDistances}
-        type FieldIsArray "maxCullDistances" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxCullDistances}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxCullDistances" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxCullDistances})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxCullDistances}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxCullDistances" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxCullDistances}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxCombinedClipAndCullDistances" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxCombinedClipAndCullDistances"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxCombinedClipAndCullDistances"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxCombinedClipAndCullDistances"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances}
-        type FieldIsArray "maxCombinedClipAndCullDistances"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxCombinedClipAndCullDistances"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxCombinedClipAndCullDistances"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances}
-
-instance {-# OVERLAPPING #-}
-         HasField "discreteQueuePriorities" VkPhysicalDeviceLimits where
-        type FieldType "discreteQueuePriorities" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "discreteQueuePriorities" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "discreteQueuePriorities" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, discreteQueuePriorities}
-        type FieldIsArray "discreteQueuePriorities" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, discreteQueuePriorities}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "discreteQueuePriorities" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, discreteQueuePriorities})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, discreteQueuePriorities}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "discreteQueuePriorities" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, discreteQueuePriorities}
-
-instance {-# OVERLAPPING #-}
-         HasField "pointSizeRange" VkPhysicalDeviceLimits where
-        type FieldType "pointSizeRange" VkPhysicalDeviceLimits =
-             #{type float}
-        type FieldOptional "pointSizeRange" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pointSizeRange" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, pointSizeRange}
-        type FieldIsArray "pointSizeRange" VkPhysicalDeviceLimits = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, pointSizeRange}
-
-instance {-# OVERLAPPING #-}
-         CanReadFieldArray "pointSizeRange" VkPhysicalDeviceLimits where
-        type FieldArrayLength "pointSizeRange" VkPhysicalDeviceLimits = 2
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 2
-
-        {-# INLINE getFieldArrayUnsafe #-}
-        getFieldArrayUnsafe i = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceLimits, pointSizeRange} +
-                      sizeOf (undefined :: #{type float}) * i
-
-        {-# INLINE readFieldArrayUnsafe #-}
-        readFieldArrayUnsafe i p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceLimits, pointSizeRange} +
-                 sizeOf (undefined :: #{type float}) * i)
-
-instance {-# OVERLAPPING #-}
-         CanWriteFieldArray "pointSizeRange" VkPhysicalDeviceLimits where
-        {-# INLINE writeFieldArrayUnsafe #-}
-        writeFieldArrayUnsafe i p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceLimits, pointSizeRange} +
-                 sizeOf (undefined :: #{type float}) * i)
-
-instance {-# OVERLAPPING #-}
-         HasField "lineWidthRange" VkPhysicalDeviceLimits where
-        type FieldType "lineWidthRange" VkPhysicalDeviceLimits =
-             #{type float}
-        type FieldOptional "lineWidthRange" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "lineWidthRange" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, lineWidthRange}
-        type FieldIsArray "lineWidthRange" VkPhysicalDeviceLimits = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, lineWidthRange}
-
-instance {-# OVERLAPPING #-}
-         CanReadFieldArray "lineWidthRange" VkPhysicalDeviceLimits where
-        type FieldArrayLength "lineWidthRange" VkPhysicalDeviceLimits = 2
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 2
-
-        {-# INLINE getFieldArrayUnsafe #-}
-        getFieldArrayUnsafe i = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceLimits, lineWidthRange} +
-                      sizeOf (undefined :: #{type float}) * i
-
-        {-# INLINE readFieldArrayUnsafe #-}
-        readFieldArrayUnsafe i p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceLimits, lineWidthRange} +
-                 sizeOf (undefined :: #{type float}) * i)
-
-instance {-# OVERLAPPING #-}
-         CanWriteFieldArray "lineWidthRange" VkPhysicalDeviceLimits where
-        {-# INLINE writeFieldArrayUnsafe #-}
-        writeFieldArrayUnsafe i p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceLimits, lineWidthRange} +
-                 sizeOf (undefined :: #{type float}) * i)
-
-instance {-# OVERLAPPING #-}
-         HasField "pointSizeGranularity" VkPhysicalDeviceLimits where
-        type FieldType "pointSizeGranularity" VkPhysicalDeviceLimits =
-             #{type float}
-        type FieldOptional "pointSizeGranularity" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pointSizeGranularity" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, pointSizeGranularity}
-        type FieldIsArray "pointSizeGranularity" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, pointSizeGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pointSizeGranularity" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, pointSizeGranularity})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, pointSizeGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pointSizeGranularity" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, pointSizeGranularity}
-
-instance {-# OVERLAPPING #-}
-         HasField "lineWidthGranularity" VkPhysicalDeviceLimits where
-        type FieldType "lineWidthGranularity" VkPhysicalDeviceLimits =
-             #{type float}
-        type FieldOptional "lineWidthGranularity" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "lineWidthGranularity" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, lineWidthGranularity}
-        type FieldIsArray "lineWidthGranularity" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, lineWidthGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "lineWidthGranularity" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, lineWidthGranularity})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, lineWidthGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "lineWidthGranularity" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, lineWidthGranularity}
-
-instance {-# OVERLAPPING #-}
-         HasField "strictLines" VkPhysicalDeviceLimits where
-        type FieldType "strictLines" VkPhysicalDeviceLimits = VkBool32
-        type FieldOptional "strictLines" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "strictLines" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, strictLines}
-        type FieldIsArray "strictLines" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, strictLines}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "strictLines" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, strictLines})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, strictLines}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "strictLines" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, strictLines}
-
-instance {-# OVERLAPPING #-}
-         HasField "standardSampleLocations" VkPhysicalDeviceLimits where
-        type FieldType "standardSampleLocations" VkPhysicalDeviceLimits =
-             VkBool32
-        type FieldOptional "standardSampleLocations" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "standardSampleLocations" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, standardSampleLocations}
-        type FieldIsArray "standardSampleLocations" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, standardSampleLocations}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "standardSampleLocations" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, standardSampleLocations})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, standardSampleLocations}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "standardSampleLocations" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, standardSampleLocations}
-
-instance {-# OVERLAPPING #-}
-         HasField "optimalBufferCopyOffsetAlignment" VkPhysicalDeviceLimits
-         where
-        type FieldType "optimalBufferCopyOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = VkDeviceSize
-        type FieldOptional "optimalBufferCopyOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "optimalBufferCopyOffsetAlignment"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment}
-        type FieldIsArray "optimalBufferCopyOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "optimalBufferCopyOffsetAlignment"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "optimalBufferCopyOffsetAlignment"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         HasField "optimalBufferCopyRowPitchAlignment"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "optimalBufferCopyRowPitchAlignment"
-               VkPhysicalDeviceLimits
-             = VkDeviceSize
-        type FieldOptional "optimalBufferCopyRowPitchAlignment"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "optimalBufferCopyRowPitchAlignment"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment}
-        type FieldIsArray "optimalBufferCopyRowPitchAlignment"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "optimalBufferCopyRowPitchAlignment"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "optimalBufferCopyRowPitchAlignment"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment}
-
-instance {-# OVERLAPPING #-}
-         HasField "nonCoherentAtomSize" VkPhysicalDeviceLimits where
-        type FieldType "nonCoherentAtomSize" VkPhysicalDeviceLimits =
-             VkDeviceSize
-        type FieldOptional "nonCoherentAtomSize" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "nonCoherentAtomSize" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, nonCoherentAtomSize}
-        type FieldIsArray "nonCoherentAtomSize" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, nonCoherentAtomSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "nonCoherentAtomSize" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, nonCoherentAtomSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, nonCoherentAtomSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "nonCoherentAtomSize" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, nonCoherentAtomSize}
-
-instance Show VkPhysicalDeviceLimits where
-        showsPrec d x
-          = showString "VkPhysicalDeviceLimits {" .
-              showString "maxImageDimension1D = " .
-                showsPrec d (getField @"maxImageDimension1D" x) .
-                  showString ", " .
-                    showString "maxImageDimension2D = " .
-                      showsPrec d (getField @"maxImageDimension2D" x) .
-                        showString ", " .
-                          showString "maxImageDimension3D = " .
-                            showsPrec d (getField @"maxImageDimension3D" x) .
-                              showString ", " .
-                                showString "maxImageDimensionCube = " .
-                                  showsPrec d (getField @"maxImageDimensionCube" x) .
-                                    showString ", " .
-                                      showString "maxImageArrayLayers = " .
-                                        showsPrec d (getField @"maxImageArrayLayers" x) .
-                                          showString ", " .
-                                            showString "maxTexelBufferElements = " .
-                                              showsPrec d (getField @"maxTexelBufferElements" x) .
-                                                showString ", " .
-                                                  showString "maxUniformBufferRange = " .
-                                                    showsPrec d
-                                                      (getField @"maxUniformBufferRange" x)
-                                                      .
-                                                      showString ", " .
-                                                        showString "maxStorageBufferRange = " .
-                                                          showsPrec d
-                                                            (getField @"maxStorageBufferRange" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString "maxPushConstantsSize = " .
-                                                                showsPrec d
-                                                                  (getField @"maxPushConstantsSize"
-                                                                     x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString
-                                                                      "maxMemoryAllocationCount = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"maxMemoryAllocationCount"
-                                                                           x)
-                                                                        .
-                                                                        showString ", " .
-                                                                          showString
-                                                                            "maxSamplerAllocationCount = "
-                                                                            .
-                                                                            showsPrec d
-                                                                              (getField
-                                                                                 @"maxSamplerAllocationCount"
-                                                                                 x)
-                                                                              .
-                                                                              showString ", " .
-                                                                                showString
-                                                                                  "bufferImageGranularity = "
-                                                                                  .
-                                                                                  showsPrec d
-                                                                                    (getField
-                                                                                       @"bufferImageGranularity"
-                                                                                       x)
-                                                                                    .
-                                                                                    showString ", "
-                                                                                      .
-                                                                                      showString
-                                                                                        "sparseAddressSpaceSize = "
-                                                                                        .
-                                                                                        showsPrec d
-                                                                                          (getField
-                                                                                             @"sparseAddressSpaceSize"
-                                                                                             x)
-                                                                                          .
-                                                                                          showString
-                                                                                            ", "
-                                                                                            .
-                                                                                            showString
-                                                                                              "maxBoundDescriptorSets = "
-                                                                                              .
-                                                                                              showsPrec
-                                                                                                d
-                                                                                                (getField
-                                                                                                   @"maxBoundDescriptorSets"
-                                                                                                   x)
-                                                                                                .
-                                                                                                showString
-                                                                                                  ", "
-                                                                                                  .
-                                                                                                  showString
-                                                                                                    "maxPerStageDescriptorSamplers = "
-                                                                                                    .
-                                                                                                    showsPrec
-                                                                                                      d
-                                                                                                      (getField
-                                                                                                         @"maxPerStageDescriptorSamplers"
-                                                                                                         x)
-                                                                                                      .
-                                                                                                      showString
-                                                                                                        ", "
-                                                                                                        .
-                                                                                                        showString
-                                                                                                          "maxPerStageDescriptorUniformBuffers = "
-                                                                                                          .
-                                                                                                          showsPrec
-                                                                                                            d
-                                                                                                            (getField
-                                                                                                               @"maxPerStageDescriptorUniformBuffers"
-                                                                                                               x)
-                                                                                                            .
-                                                                                                            showString
-                                                                                                              ", "
-                                                                                                              .
-                                                                                                              showString
-                                                                                                                "maxPerStageDescriptorStorageBuffers = "
-                                                                                                                .
-                                                                                                                showsPrec
-                                                                                                                  d
-                                                                                                                  (getField
-                                                                                                                     @"maxPerStageDescriptorStorageBuffers"
-                                                                                                                     x)
-                                                                                                                  .
-                                                                                                                  showString
-                                                                                                                    ", "
-                                                                                                                    .
-                                                                                                                    showString
-                                                                                                                      "maxPerStageDescriptorSampledImages = "
-                                                                                                                      .
-                                                                                                                      showsPrec
-                                                                                                                        d
-                                                                                                                        (getField
-                                                                                                                           @"maxPerStageDescriptorSampledImages"
-                                                                                                                           x)
-                                                                                                                        .
-                                                                                                                        showString
-                                                                                                                          ", "
-                                                                                                                          .
-                                                                                                                          showString
-                                                                                                                            "maxPerStageDescriptorStorageImages = "
-                                                                                                                            .
-                                                                                                                            showsPrec
-                                                                                                                              d
-                                                                                                                              (getField
-                                                                                                                                 @"maxPerStageDescriptorStorageImages"
-                                                                                                                                 x)
-                                                                                                                              .
-                                                                                                                              showString
-                                                                                                                                ", "
-                                                                                                                                .
-                                                                                                                                showString
-                                                                                                                                  "maxPerStageDescriptorInputAttachments = "
-                                                                                                                                  .
-                                                                                                                                  showsPrec
-                                                                                                                                    d
-                                                                                                                                    (getField
-                                                                                                                                       @"maxPerStageDescriptorInputAttachments"
-                                                                                                                                       x)
-                                                                                                                                    .
-                                                                                                                                    showString
-                                                                                                                                      ", "
-                                                                                                                                      .
-                                                                                                                                      showString
-                                                                                                                                        "maxPerStageResources = "
-                                                                                                                                        .
-                                                                                                                                        showsPrec
-                                                                                                                                          d
-                                                                                                                                          (getField
-                                                                                                                                             @"maxPerStageResources"
-                                                                                                                                             x)
-                                                                                                                                          .
-                                                                                                                                          showString
-                                                                                                                                            ", "
-                                                                                                                                            .
-                                                                                                                                            showString
-                                                                                                                                              "maxDescriptorSetSamplers = "
-                                                                                                                                              .
-                                                                                                                                              showsPrec
-                                                                                                                                                d
-                                                                                                                                                (getField
-                                                                                                                                                   @"maxDescriptorSetSamplers"
-                                                                                                                                                   x)
-                                                                                                                                                .
-                                                                                                                                                showString
-                                                                                                                                                  ", "
-                                                                                                                                                  .
-                                                                                                                                                  showString
-                                                                                                                                                    "maxDescriptorSetUniformBuffers = "
-                                                                                                                                                    .
-                                                                                                                                                    showsPrec
-                                                                                                                                                      d
-                                                                                                                                                      (getField
-                                                                                                                                                         @"maxDescriptorSetUniformBuffers"
-                                                                                                                                                         x)
-                                                                                                                                                      .
-                                                                                                                                                      showString
-                                                                                                                                                        ", "
-                                                                                                                                                        .
-                                                                                                                                                        showString
-                                                                                                                                                          "maxDescriptorSetUniformBuffersDynamic = "
-                                                                                                                                                          .
-                                                                                                                                                          showsPrec
-                                                                                                                                                            d
-                                                                                                                                                            (getField
-                                                                                                                                                               @"maxDescriptorSetUniformBuffersDynamic"
-                                                                                                                                                               x)
-                                                                                                                                                            .
-                                                                                                                                                            showString
-                                                                                                                                                              ", "
-                                                                                                                                                              .
-                                                                                                                                                              showString
-                                                                                                                                                                "maxDescriptorSetStorageBuffers = "
-                                                                                                                                                                .
-                                                                                                                                                                showsPrec
-                                                                                                                                                                  d
-                                                                                                                                                                  (getField
-                                                                                                                                                                     @"maxDescriptorSetStorageBuffers"
-                                                                                                                                                                     x)
-                                                                                                                                                                  .
-                                                                                                                                                                  showString
-                                                                                                                                                                    ", "
-                                                                                                                                                                    .
-                                                                                                                                                                    showString
-                                                                                                                                                                      "maxDescriptorSetStorageBuffersDynamic = "
-                                                                                                                                                                      .
-                                                                                                                                                                      showsPrec
-                                                                                                                                                                        d
-                                                                                                                                                                        (getField
-                                                                                                                                                                           @"maxDescriptorSetStorageBuffersDynamic"
-                                                                                                                                                                           x)
-                                                                                                                                                                        .
-                                                                                                                                                                        showString
-                                                                                                                                                                          ", "
-                                                                                                                                                                          .
-                                                                                                                                                                          showString
-                                                                                                                                                                            "maxDescriptorSetSampledImages = "
-                                                                                                                                                                            .
-                                                                                                                                                                            showsPrec
-                                                                                                                                                                              d
-                                                                                                                                                                              (getField
-                                                                                                                                                                                 @"maxDescriptorSetSampledImages"
-                                                                                                                                                                                 x)
-                                                                                                                                                                              .
-                                                                                                                                                                              showString
-                                                                                                                                                                                ", "
-                                                                                                                                                                                .
-                                                                                                                                                                                showString
-                                                                                                                                                                                  "maxDescriptorSetStorageImages = "
-                                                                                                                                                                                  .
-                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                    d
-                                                                                                                                                                                    (getField
-                                                                                                                                                                                       @"maxDescriptorSetStorageImages"
-                                                                                                                                                                                       x)
-                                                                                                                                                                                    .
-                                                                                                                                                                                    showString
-                                                                                                                                                                                      ", "
-                                                                                                                                                                                      .
-                                                                                                                                                                                      showString
-                                                                                                                                                                                        "maxDescriptorSetInputAttachments = "
-                                                                                                                                                                                        .
-                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                          d
-                                                                                                                                                                                          (getField
-                                                                                                                                                                                             @"maxDescriptorSetInputAttachments"
-                                                                                                                                                                                             x)
-                                                                                                                                                                                          .
-                                                                                                                                                                                          showString
-                                                                                                                                                                                            ", "
-                                                                                                                                                                                            .
-                                                                                                                                                                                            showString
-                                                                                                                                                                                              "maxVertexInputAttributes = "
-                                                                                                                                                                                              .
-                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                d
-                                                                                                                                                                                                (getField
-                                                                                                                                                                                                   @"maxVertexInputAttributes"
-                                                                                                                                                                                                   x)
-                                                                                                                                                                                                .
-                                                                                                                                                                                                showString
-                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                  .
-                                                                                                                                                                                                  showString
-                                                                                                                                                                                                    "maxVertexInputBindings = "
-                                                                                                                                                                                                    .
-                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                      d
-                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                         @"maxVertexInputBindings"
-                                                                                                                                                                                                         x)
-                                                                                                                                                                                                      .
-                                                                                                                                                                                                      showString
-                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                        .
-                                                                                                                                                                                                        showString
-                                                                                                                                                                                                          "maxVertexInputAttributeOffset = "
-                                                                                                                                                                                                          .
-                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                            d
-                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                               @"maxVertexInputAttributeOffset"
-                                                                                                                                                                                                               x)
-                                                                                                                                                                                                            .
-                                                                                                                                                                                                            showString
-                                                                                                                                                                                                              ", "
-                                                                                                                                                                                                              .
-                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                "maxVertexInputBindingStride = "
-                                                                                                                                                                                                                .
-                                                                                                                                                                                                                showsPrec
-                                                                                                                                                                                                                  d
-                                                                                                                                                                                                                  (getField
-                                                                                                                                                                                                                     @"maxVertexInputBindingStride"
-                                                                                                                                                                                                                     x)
-                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                      "maxVertexOutputComponents = "
-                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                           @"maxVertexOutputComponents"
-                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                            "maxTessellationGenerationLevel = "
-                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                 @"maxTessellationGenerationLevel"
-                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                  "maxTessellationPatchSize = "
-                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                       @"maxTessellationPatchSize"
-                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                        "maxTessellationControlPerVertexInputComponents = "
-                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                                                                          d
-                                                                                                                                                                                                                                          (getField
-                                                                                                                                                                                                                                             @"maxTessellationControlPerVertexInputComponents"
-                                                                                                                                                                                                                                             x)
-                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                              "maxTessellationControlPerVertexOutputComponents = "
-                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                                                                d
-                                                                                                                                                                                                                                                (getField
-                                                                                                                                                                                                                                                   @"maxTessellationControlPerVertexOutputComponents"
-                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                    "maxTessellationControlPerPatchOutputComponents = "
-                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                                                                      d
-                                                                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                                                                         @"maxTessellationControlPerPatchOutputComponents"
-                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                          "maxTessellationControlTotalOutputComponents = "
-                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                                                                            d
-                                                                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                                                                               @"maxTessellationControlTotalOutputComponents"
-                                                                                                                                                                                                                                                               x)
-                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                              ", "
-                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                "maxTessellationEvaluationInputComponents = "
-                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                showsPrec
-                                                                                                                                                                                                                                                                  d
-                                                                                                                                                                                                                                                                  (getField
-                                                                                                                                                                                                                                                                     @"maxTessellationEvaluationInputComponents"
-                                                                                                                                                                                                                                                                     x)
-                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                      "maxTessellationEvaluationOutputComponents = "
-                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                                                                           @"maxTessellationEvaluationOutputComponents"
-                                                                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                            "maxGeometryShaderInvocations = "
-                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                                                                 @"maxGeometryShaderInvocations"
-                                                                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                  "maxGeometryInputComponents = "
-                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                                                                       @"maxGeometryInputComponents"
-                                                                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                        "maxGeometryOutputComponents = "
-                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                                                                                                                          d
-                                                                                                                                                                                                                                                                                          (getField
-                                                                                                                                                                                                                                                                                             @"maxGeometryOutputComponents"
-                                                                                                                                                                                                                                                                                             x)
-                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                              "maxGeometryOutputVertices = "
-                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                                                                                                                d
-                                                                                                                                                                                                                                                                                                (getField
-                                                                                                                                                                                                                                                                                                   @"maxGeometryOutputVertices"
-                                                                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                    "maxGeometryTotalOutputComponents = "
-                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                                                                                                                      d
-                                                                                                                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                                                                                                                         @"maxGeometryTotalOutputComponents"
-                                                                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                          "maxFragmentInputComponents = "
-                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                                                                                                                            d
-                                                                                                                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                                                                                                                               @"maxFragmentInputComponents"
-                                                                                                                                                                                                                                                                                                               x)
-                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                              ", "
-                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                "maxFragmentOutputAttachments = "
-                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                showsPrec
-                                                                                                                                                                                                                                                                                                                  d
-                                                                                                                                                                                                                                                                                                                  (getField
-                                                                                                                                                                                                                                                                                                                     @"maxFragmentOutputAttachments"
-                                                                                                                                                                                                                                                                                                                     x)
-                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                      "maxFragmentDualSrcAttachments = "
-                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                                                                                                                           @"maxFragmentDualSrcAttachments"
-                                                                                                                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                            "maxFragmentCombinedOutputResources = "
-                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                                                                                                                 @"maxFragmentCombinedOutputResources"
-                                                                                                                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                  "maxComputeSharedMemorySize = "
-                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                                                                                                                       @"maxComputeSharedMemorySize"
-                                                                                                                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                      (showString
-                                                                                                                                                                                                                                                                                                                                         "maxComputeWorkGroupCount = ["
-                                                                                                                                                                                                                                                                                                                                         .
-                                                                                                                                                                                                                                                                                                                                         showsPrec
-                                                                                                                                                                                                                                                                                                                                           d
-                                                                                                                                                                                                                                                                                                                                           (let s = sizeOf
-                                                                                                                                                                                                                                                                                                                                                      (undefined
-                                                                                                                                                                                                                                                                                                                                                         ::
-                                                                                                                                                                                                                                                                                                                                                         FieldType
-                                                                                                                                                                                                                                                                                                                                                           "maxComputeWorkGroupCount"
-                                                                                                                                                                                                                                                                                                                                                           VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                o = fieldOffset
-                                                                                                                                                                                                                                                                                                                                                      @"maxComputeWorkGroupCount"
-                                                                                                                                                                                                                                                                                                                                                      @VkPhysicalDeviceLimits
-                                                                                                                                                                                                                                                                                                                                                f i
-                                                                                                                                                                                                                                                                                                                                                  = peekByteOff
-                                                                                                                                                                                                                                                                                                                                                      (unsafePtr
-                                                                                                                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                                                                                                                      i
-                                                                                                                                                                                                                                                                                                                                                      ::
-                                                                                                                                                                                                                                                                                                                                                      IO
-                                                                                                                                                                                                                                                                                                                                                        (FieldType
-                                                                                                                                                                                                                                                                                                                                                           "maxComputeWorkGroupCount"
-                                                                                                                                                                                                                                                                                                                                                           VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                              in
-                                                                                                                                                                                                                                                                                                                                              unsafeDupablePerformIO
-                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                mapM
-                                                                                                                                                                                                                                                                                                                                                  f
-                                                                                                                                                                                                                                                                                                                                                $
-                                                                                                                                                                                                                                                                                                                                                map
-                                                                                                                                                                                                                                                                                                                                                  (\ i
-                                                                                                                                                                                                                                                                                                                                                     ->
-                                                                                                                                                                                                                                                                                                                                                     o +
-                                                                                                                                                                                                                                                                                                                                                       i *
-                                                                                                                                                                                                                                                                                                                                                         s)
-                                                                                                                                                                                                                                                                                                                                                  [0
-                                                                                                                                                                                                                                                                                                                                                   ..
-                                                                                                                                                                                                                                                                                                                                                   3 -
-                                                                                                                                                                                                                                                                                                                                                     1])
-                                                                                                                                                                                                                                                                                                                                           .
-                                                                                                                                                                                                                                                                                                                                           showChar
-                                                                                                                                                                                                                                                                                                                                             ']')
-                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                            "maxComputeWorkGroupInvocations = "
-                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                                                                                                                                 @"maxComputeWorkGroupInvocations"
-                                                                                                                                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                (showString
-                                                                                                                                                                                                                                                                                                                                                   "maxComputeWorkGroupSize = ["
-                                                                                                                                                                                                                                                                                                                                                   .
-                                                                                                                                                                                                                                                                                                                                                   showsPrec
-                                                                                                                                                                                                                                                                                                                                                     d
-                                                                                                                                                                                                                                                                                                                                                     (let s = sizeOf
-                                                                                                                                                                                                                                                                                                                                                                (undefined
-                                                                                                                                                                                                                                                                                                                                                                   ::
-                                                                                                                                                                                                                                                                                                                                                                   FieldType
-                                                                                                                                                                                                                                                                                                                                                                     "maxComputeWorkGroupSize"
-                                                                                                                                                                                                                                                                                                                                                                     VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                          o = fieldOffset
-                                                                                                                                                                                                                                                                                                                                                                @"maxComputeWorkGroupSize"
-                                                                                                                                                                                                                                                                                                                                                                @VkPhysicalDeviceLimits
-                                                                                                                                                                                                                                                                                                                                                          f i
-                                                                                                                                                                                                                                                                                                                                                            = peekByteOff
-                                                                                                                                                                                                                                                                                                                                                                (unsafePtr
-                                                                                                                                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                                                                                                                                i
-                                                                                                                                                                                                                                                                                                                                                                ::
-                                                                                                                                                                                                                                                                                                                                                                IO
-                                                                                                                                                                                                                                                                                                                                                                  (FieldType
-                                                                                                                                                                                                                                                                                                                                                                     "maxComputeWorkGroupSize"
-                                                                                                                                                                                                                                                                                                                                                                     VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                        in
-                                                                                                                                                                                                                                                                                                                                                        unsafeDupablePerformIO
-                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                          mapM
-                                                                                                                                                                                                                                                                                                                                                            f
-                                                                                                                                                                                                                                                                                                                                                          $
-                                                                                                                                                                                                                                                                                                                                                          map
-                                                                                                                                                                                                                                                                                                                                                            (\ i
-                                                                                                                                                                                                                                                                                                                                                               ->
-                                                                                                                                                                                                                                                                                                                                                               o +
-                                                                                                                                                                                                                                                                                                                                                                 i *
-                                                                                                                                                                                                                                                                                                                                                                   s)
-                                                                                                                                                                                                                                                                                                                                                            [0
-                                                                                                                                                                                                                                                                                                                                                             ..
-                                                                                                                                                                                                                                                                                                                                                             3 -
-                                                                                                                                                                                                                                                                                                                                                               1])
-                                                                                                                                                                                                                                                                                                                                                     .
-                                                                                                                                                                                                                                                                                                                                                     showChar
-                                                                                                                                                                                                                                                                                                                                                       ']')
-                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                      "subPixelPrecisionBits = "
-                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                                                                                                                                                           @"subPixelPrecisionBits"
-                                                                                                                                                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                            "subTexelPrecisionBits = "
-                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                                                                                                                                                 @"subTexelPrecisionBits"
-                                                                                                                                                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                  "mipmapPrecisionBits = "
-                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                                                                                                                                                       @"mipmapPrecisionBits"
-                                                                                                                                                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                        "maxDrawIndexedIndexValue = "
-                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                                                                                                                                                                                                          d
-                                                                                                                                                                                                                                                                                                                                                                          (getField
-                                                                                                                                                                                                                                                                                                                                                                             @"maxDrawIndexedIndexValue"
-                                                                                                                                                                                                                                                                                                                                                                             x)
-                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                              "maxDrawIndirectCount = "
-                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                d
-                                                                                                                                                                                                                                                                                                                                                                                (getField
-                                                                                                                                                                                                                                                                                                                                                                                   @"maxDrawIndirectCount"
-                                                                                                                                                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                    "maxSamplerLodBias = "
-                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                      d
-                                                                                                                                                                                                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                                                                                                                                                                                                         @"maxSamplerLodBias"
-                                                                                                                                                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                          "maxSamplerAnisotropy = "
-                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                            d
-                                                                                                                                                                                                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                                                                                                                                                                                                               @"maxSamplerAnisotropy"
-                                                                                                                                                                                                                                                                                                                                                                                               x)
-                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                                              ", "
-                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                "maxViewports = "
-                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                  d
-                                                                                                                                                                                                                                                                                                                                                                                                  (getField
-                                                                                                                                                                                                                                                                                                                                                                                                     @"maxViewports"
-                                                                                                                                                                                                                                                                                                                                                                                                     x)
-                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                    (showString
-                                                                                                                                                                                                                                                                                                                                                                                                       "maxViewportDimensions = ["
-                                                                                                                                                                                                                                                                                                                                                                                                       .
-                                                                                                                                                                                                                                                                                                                                                                                                       showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                         d
-                                                                                                                                                                                                                                                                                                                                                                                                         (let s = sizeOf
-                                                                                                                                                                                                                                                                                                                                                                                                                    (undefined
-                                                                                                                                                                                                                                                                                                                                                                                                                       ::
-                                                                                                                                                                                                                                                                                                                                                                                                                       FieldType
-                                                                                                                                                                                                                                                                                                                                                                                                                         "maxViewportDimensions"
-                                                                                                                                                                                                                                                                                                                                                                                                                         VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                                                                              o = fieldOffset
-                                                                                                                                                                                                                                                                                                                                                                                                                    @"maxViewportDimensions"
-                                                                                                                                                                                                                                                                                                                                                                                                                    @VkPhysicalDeviceLimits
-                                                                                                                                                                                                                                                                                                                                                                                                              f i
-                                                                                                                                                                                                                                                                                                                                                                                                                = peekByteOff
-                                                                                                                                                                                                                                                                                                                                                                                                                    (unsafePtr
-                                                                                                                                                                                                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                                                                                                                                                                                                    i
-                                                                                                                                                                                                                                                                                                                                                                                                                    ::
-                                                                                                                                                                                                                                                                                                                                                                                                                    IO
-                                                                                                                                                                                                                                                                                                                                                                                                                      (FieldType
-                                                                                                                                                                                                                                                                                                                                                                                                                         "maxViewportDimensions"
-                                                                                                                                                                                                                                                                                                                                                                                                                         VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                                                                            in
-                                                                                                                                                                                                                                                                                                                                                                                                            unsafeDupablePerformIO
-                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                              mapM
-                                                                                                                                                                                                                                                                                                                                                                                                                f
-                                                                                                                                                                                                                                                                                                                                                                                                              $
-                                                                                                                                                                                                                                                                                                                                                                                                              map
-                                                                                                                                                                                                                                                                                                                                                                                                                (\ i
-                                                                                                                                                                                                                                                                                                                                                                                                                   ->
-                                                                                                                                                                                                                                                                                                                                                                                                                   o +
-                                                                                                                                                                                                                                                                                                                                                                                                                     i *
-                                                                                                                                                                                                                                                                                                                                                                                                                       s)
-                                                                                                                                                                                                                                                                                                                                                                                                                [0
-                                                                                                                                                                                                                                                                                                                                                                                                                 ..
-                                                                                                                                                                                                                                                                                                                                                                                                                 2 -
-                                                                                                                                                                                                                                                                                                                                                                                                                   1])
-                                                                                                                                                                                                                                                                                                                                                                                                         .
-                                                                                                                                                                                                                                                                                                                                                                                                         showChar
-                                                                                                                                                                                                                                                                                                                                                                                                           ']')
-                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                        (showString
-                                                                                                                                                                                                                                                                                                                                                                                                           "viewportBoundsRange = ["
-                                                                                                                                                                                                                                                                                                                                                                                                           .
-                                                                                                                                                                                                                                                                                                                                                                                                           showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                             d
-                                                                                                                                                                                                                                                                                                                                                                                                             (let s = sizeOf
-                                                                                                                                                                                                                                                                                                                                                                                                                        (undefined
-                                                                                                                                                                                                                                                                                                                                                                                                                           ::
-                                                                                                                                                                                                                                                                                                                                                                                                                           FieldType
-                                                                                                                                                                                                                                                                                                                                                                                                                             "viewportBoundsRange"
-                                                                                                                                                                                                                                                                                                                                                                                                                             VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                                                                                  o = fieldOffset
-                                                                                                                                                                                                                                                                                                                                                                                                                        @"viewportBoundsRange"
-                                                                                                                                                                                                                                                                                                                                                                                                                        @VkPhysicalDeviceLimits
-                                                                                                                                                                                                                                                                                                                                                                                                                  f i
-                                                                                                                                                                                                                                                                                                                                                                                                                    = peekByteOff
-                                                                                                                                                                                                                                                                                                                                                                                                                        (unsafePtr
-                                                                                                                                                                                                                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                                                                                                                                                                                                                        i
-                                                                                                                                                                                                                                                                                                                                                                                                                        ::
-                                                                                                                                                                                                                                                                                                                                                                                                                        IO
-                                                                                                                                                                                                                                                                                                                                                                                                                          (FieldType
-                                                                                                                                                                                                                                                                                                                                                                                                                             "viewportBoundsRange"
-                                                                                                                                                                                                                                                                                                                                                                                                                             VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                                                                                in
-                                                                                                                                                                                                                                                                                                                                                                                                                unsafeDupablePerformIO
-                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                  mapM
-                                                                                                                                                                                                                                                                                                                                                                                                                    f
-                                                                                                                                                                                                                                                                                                                                                                                                                  $
-                                                                                                                                                                                                                                                                                                                                                                                                                  map
-                                                                                                                                                                                                                                                                                                                                                                                                                    (\ i
-                                                                                                                                                                                                                                                                                                                                                                                                                       ->
-                                                                                                                                                                                                                                                                                                                                                                                                                       o +
-                                                                                                                                                                                                                                                                                                                                                                                                                         i *
-                                                                                                                                                                                                                                                                                                                                                                                                                           s)
-                                                                                                                                                                                                                                                                                                                                                                                                                    [0
-                                                                                                                                                                                                                                                                                                                                                                                                                     ..
-                                                                                                                                                                                                                                                                                                                                                                                                                     2 -
-                                                                                                                                                                                                                                                                                                                                                                                                                       1])
-                                                                                                                                                                                                                                                                                                                                                                                                             .
-                                                                                                                                                                                                                                                                                                                                                                                                             showChar
-                                                                                                                                                                                                                                                                                                                                                                                                               ']')
-                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                                                              "viewportSubPixelBits = "
-                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                d
-                                                                                                                                                                                                                                                                                                                                                                                                                (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                   @"viewportSubPixelBits"
-                                                                                                                                                                                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                                    "minMemoryMapAlignment = "
-                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                      d
-                                                                                                                                                                                                                                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                         @"minMemoryMapAlignment"
-                                                                                                                                                                                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                                                          "minTexelBufferOffsetAlignment = "
-                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                            d
-                                                                                                                                                                                                                                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                               @"minTexelBufferOffsetAlignment"
-                                                                                                                                                                                                                                                                                                                                                                                                                               x)
-                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                                                                              ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                "minUniformBufferOffsetAlignment = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                  d
-                                                                                                                                                                                                                                                                                                                                                                                                                                  (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                     @"minUniformBufferOffsetAlignment"
-                                                                                                                                                                                                                                                                                                                                                                                                                                     x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                      "minStorageBufferOffsetAlignment = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                           @"minStorageBufferOffsetAlignment"
-                                                                                                                                                                                                                                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                            "minTexelOffset = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                 @"minTexelOffset"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                  "maxTexelOffset = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                       @"maxTexelOffset"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                        "minTexelGatherOffset = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                          d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                          (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                             @"minTexelGatherOffset"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                             x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                              "maxTexelGatherOffset = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                   @"maxTexelGatherOffset"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                    "minInterpolationOffset = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                      d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                         @"minInterpolationOffset"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                          "maxInterpolationOffset = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                            d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                               @"maxInterpolationOffset"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                               x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                "subPixelInterpolationOffsetBits = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     @"subPixelInterpolationOffsetBits"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "maxFramebufferWidth = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           @"maxFramebufferWidth"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "maxFramebufferHeight = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @"maxFramebufferHeight"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  "maxFramebufferLayers = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       @"maxFramebufferLayers"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        "framebufferColorSampleCounts = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             @"framebufferColorSampleCounts"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              "framebufferDepthSampleCounts = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   @"framebufferDepthSampleCounts"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    "framebufferStencilSampleCounts = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         @"framebufferStencilSampleCounts"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          "framebufferNoAttachmentsSampleCounts = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               @"framebufferNoAttachmentsSampleCounts"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                "maxColorAttachments = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     @"maxColorAttachments"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "sampledImageColorSampleCounts = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           @"sampledImageColorSampleCounts"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "sampledImageIntegerSampleCounts = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @"sampledImageIntegerSampleCounts"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  "sampledImageDepthSampleCounts = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       @"sampledImageDepthSampleCounts"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        "sampledImageStencilSampleCounts = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             @"sampledImageStencilSampleCounts"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              "storageImageSampleCounts = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   @"storageImageSampleCounts"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    "maxSampleMaskWords = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         @"maxSampleMaskWords"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          "timestampComputeAndGraphics = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               @"timestampComputeAndGraphics"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                "timestampPeriod = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     @"timestampPeriod"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "maxClipDistances = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           @"maxClipDistances"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "maxCullDistances = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @"maxCullDistances"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  "maxCombinedClipAndCullDistances = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       @"maxCombinedClipAndCullDistances"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        "discreteQueuePriorities = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             @"discreteQueuePriorities"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               "pointSizeRange = ["
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (let s = sizeOf
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (undefined
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ::
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               FieldType
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 "pointSizeRange"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      o = fieldOffset
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            @"pointSizeRange"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            @VkPhysicalDeviceLimits
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      f i
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        = peekByteOff
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (unsafePtr
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            i
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ::
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            IO
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (FieldType
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 "pointSizeRange"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    in
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    unsafeDupablePerformIO
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      mapM
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        f
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      $
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      map
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (\ i
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ->
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           o +
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             i *
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               s)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        [0
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ..
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         2 -
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           1])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 showChar
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ']')
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   "lineWidthRange = ["
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (let s = sizeOf
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (undefined
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ::
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   FieldType
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     "lineWidthRange"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          o = fieldOffset
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                @"lineWidthRange"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                @VkPhysicalDeviceLimits
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          f i
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            = peekByteOff
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (unsafePtr
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                i
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ::
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                IO
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (FieldType
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     "lineWidthRange"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        in
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        unsafeDupablePerformIO
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          mapM
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            f
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          $
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          map
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (\ i
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ->
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               o +
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 i *
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   s)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            [0
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ..
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             2 -
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               1])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     showChar
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ']')
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "pointSizeGranularity = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           @"pointSizeGranularity"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "lineWidthGranularity = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @"lineWidthGranularity"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  "strictLines = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       @"strictLines"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        "standardSampleLocations = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             @"standardSampleLocations"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              "optimalBufferCopyOffsetAlignment = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   @"optimalBufferCopyOffsetAlignment"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    "optimalBufferCopyRowPitchAlignment = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         @"optimalBufferCopyRowPitchAlignment"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          "nonCoherentAtomSize = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               @"nonCoherentAtomSize"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showChar
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              '}'
-
--- | > typedef struct VkPhysicalDeviceMaintenance3Properties {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     uint32_t                         maxPerSetDescriptors;
---   >     VkDeviceSize                     maxMemoryAllocationSize;
---   > } VkPhysicalDeviceMaintenance3Properties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3Properties registry at www.khronos.org>
-data VkPhysicalDeviceMaintenance3Properties = VkPhysicalDeviceMaintenance3Properties## Addr##
-                                                                                      ByteArray##
-
-instance Eq VkPhysicalDeviceMaintenance3Properties where
-        (VkPhysicalDeviceMaintenance3Properties## a _) ==
-          x@(VkPhysicalDeviceMaintenance3Properties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceMaintenance3Properties where
-        (VkPhysicalDeviceMaintenance3Properties## a _) `compare`
-          x@(VkPhysicalDeviceMaintenance3Properties## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceMaintenance3Properties where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceMaintenance3Properties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceMaintenance3Properties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceMaintenance3Properties
-         where
-        unsafeAddr (VkPhysicalDeviceMaintenance3Properties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceMaintenance3Properties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceMaintenance3Properties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceMaintenance3Properties where
-        type StructFields VkPhysicalDeviceMaintenance3Properties =
-             '["sType", "pNext", "maxPerSetDescriptors", -- ' closing tick for hsc2hs
-               "maxMemoryAllocationSize"]
-        type CUnionType VkPhysicalDeviceMaintenance3Properties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceMaintenance3Properties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceMaintenance3Properties =
-             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceMaintenance3Properties where
-        type FieldType "sType" VkPhysicalDeviceMaintenance3Properties =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceMaintenance3Properties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceMaintenance3Properties =
-             #{offset VkPhysicalDeviceMaintenance3Properties, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceMaintenance3Properties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMaintenance3Properties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceMaintenance3Properties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMaintenance3Properties, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceMaintenance3Properties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceMaintenance3Properties where
-        type FieldType "pNext" VkPhysicalDeviceMaintenance3Properties =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceMaintenance3Properties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceMaintenance3Properties =
-             #{offset VkPhysicalDeviceMaintenance3Properties, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceMaintenance3Properties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMaintenance3Properties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceMaintenance3Properties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMaintenance3Properties, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceMaintenance3Properties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerSetDescriptors"
-           VkPhysicalDeviceMaintenance3Properties
-         where
-        type FieldType "maxPerSetDescriptors"
-               VkPhysicalDeviceMaintenance3Properties
-             = Word32
-        type FieldOptional "maxPerSetDescriptors"
-               VkPhysicalDeviceMaintenance3Properties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPerSetDescriptors"
-               VkPhysicalDeviceMaintenance3Properties
-             =
-             #{offset VkPhysicalDeviceMaintenance3Properties, maxPerSetDescriptors}
-        type FieldIsArray "maxPerSetDescriptors"
-               VkPhysicalDeviceMaintenance3Properties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMaintenance3Properties, maxPerSetDescriptors}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerSetDescriptors"
-           VkPhysicalDeviceMaintenance3Properties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMaintenance3Properties, maxPerSetDescriptors})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, maxPerSetDescriptors}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerSetDescriptors"
-           VkPhysicalDeviceMaintenance3Properties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, maxPerSetDescriptors}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxMemoryAllocationSize"
-           VkPhysicalDeviceMaintenance3Properties
-         where
-        type FieldType "maxMemoryAllocationSize"
-               VkPhysicalDeviceMaintenance3Properties
-             = VkDeviceSize
-        type FieldOptional "maxMemoryAllocationSize"
-               VkPhysicalDeviceMaintenance3Properties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxMemoryAllocationSize"
-               VkPhysicalDeviceMaintenance3Properties
-             =
-             #{offset VkPhysicalDeviceMaintenance3Properties, maxMemoryAllocationSize}
-        type FieldIsArray "maxMemoryAllocationSize"
-               VkPhysicalDeviceMaintenance3Properties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMaintenance3Properties, maxMemoryAllocationSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxMemoryAllocationSize"
-           VkPhysicalDeviceMaintenance3Properties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMaintenance3Properties, maxMemoryAllocationSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, maxMemoryAllocationSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxMemoryAllocationSize"
-           VkPhysicalDeviceMaintenance3Properties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, maxMemoryAllocationSize}
-
-instance Show VkPhysicalDeviceMaintenance3Properties where
-        showsPrec d x
-          = showString "VkPhysicalDeviceMaintenance3Properties {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "maxPerSetDescriptors = " .
-                            showsPrec d (getField @"maxPerSetDescriptors" x) .
-                              showString ", " .
-                                showString "maxMemoryAllocationSize = " .
-                                  showsPrec d (getField @"maxMemoryAllocationSize" x) . showChar '}'
-
--- | Alias for `VkPhysicalDeviceMaintenance3Properties`
-type VkPhysicalDeviceMaintenance3PropertiesKHR =
-     VkPhysicalDeviceMaintenance3Properties
-
--- | > typedef struct VkPhysicalDeviceMemoryProperties {
---   >     uint32_t               memoryTypeCount;
---   >     VkMemoryType           memoryTypes[VK_MAX_MEMORY_TYPES];
---   >     uint32_t               memoryHeapCount;
---   >     VkMemoryHeap           memoryHeaps[VK_MAX_MEMORY_HEAPS];
---   > } VkPhysicalDeviceMemoryProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceMemoryProperties VkPhysicalDeviceMemoryProperties registry at www.khronos.org>
-data VkPhysicalDeviceMemoryProperties = VkPhysicalDeviceMemoryProperties## Addr##
-                                                                          ByteArray##
-
-instance Eq VkPhysicalDeviceMemoryProperties where
-        (VkPhysicalDeviceMemoryProperties## a _) ==
-          x@(VkPhysicalDeviceMemoryProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceMemoryProperties where
-        (VkPhysicalDeviceMemoryProperties## a _) `compare`
-          x@(VkPhysicalDeviceMemoryProperties## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceMemoryProperties where
-        sizeOf ~_ = #{size VkPhysicalDeviceMemoryProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceMemoryProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceMemoryProperties where
-        unsafeAddr (VkPhysicalDeviceMemoryProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceMemoryProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceMemoryProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceMemoryProperties where
-        type StructFields VkPhysicalDeviceMemoryProperties =
-             '["memoryTypeCount", "memoryTypes", "memoryHeapCount", -- ' closing tick for hsc2hs
-               "memoryHeaps"]
-        type CUnionType VkPhysicalDeviceMemoryProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceMemoryProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceMemoryProperties = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryTypeCount" VkPhysicalDeviceMemoryProperties where
-        type FieldType "memoryTypeCount" VkPhysicalDeviceMemoryProperties =
-             Word32
-        type FieldOptional "memoryTypeCount"
-               VkPhysicalDeviceMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryTypeCount" VkPhysicalDeviceMemoryProperties
-             =
-             #{offset VkPhysicalDeviceMemoryProperties, memoryTypeCount}
-        type FieldIsArray "memoryTypeCount"
-               VkPhysicalDeviceMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMemoryProperties, memoryTypeCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memoryTypeCount" VkPhysicalDeviceMemoryProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMemoryProperties, memoryTypeCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMemoryProperties, memoryTypeCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memoryTypeCount" VkPhysicalDeviceMemoryProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMemoryProperties, memoryTypeCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryTypes" VkPhysicalDeviceMemoryProperties where
-        type FieldType "memoryTypes" VkPhysicalDeviceMemoryProperties =
-             VkMemoryType
-        type FieldOptional "memoryTypes" VkPhysicalDeviceMemoryProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryTypes" VkPhysicalDeviceMemoryProperties =
-             #{offset VkPhysicalDeviceMemoryProperties, memoryTypes}
-        type FieldIsArray "memoryTypes" VkPhysicalDeviceMemoryProperties =
-             'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMemoryProperties, memoryTypes}
-
-instance {-# OVERLAPPING #-}
-         CanReadFieldArray "memoryTypes" VkPhysicalDeviceMemoryProperties
-         where
-        type FieldArrayLength "memoryTypes"
-               VkPhysicalDeviceMemoryProperties
-             = VK_MAX_MEMORY_TYPES
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = VK_MAX_MEMORY_TYPES
-
-        {-# INLINE getFieldArrayUnsafe #-}
-        getFieldArrayUnsafe i = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceMemoryProperties, memoryTypes}
-                      + sizeOf (undefined :: VkMemoryType) * i
-
-        {-# INLINE readFieldArrayUnsafe #-}
-        readFieldArrayUnsafe i p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceMemoryProperties, memoryTypes}
-                 + sizeOf (undefined :: VkMemoryType) * i)
-
-instance {-# OVERLAPPING #-}
-         CanWriteFieldArray "memoryTypes" VkPhysicalDeviceMemoryProperties
-         where
-        {-# INLINE writeFieldArrayUnsafe #-}
-        writeFieldArrayUnsafe i p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceMemoryProperties, memoryTypes}
-                 + sizeOf (undefined :: VkMemoryType) * i)
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryHeapCount" VkPhysicalDeviceMemoryProperties where
-        type FieldType "memoryHeapCount" VkPhysicalDeviceMemoryProperties =
-             Word32
-        type FieldOptional "memoryHeapCount"
-               VkPhysicalDeviceMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryHeapCount" VkPhysicalDeviceMemoryProperties
-             =
-             #{offset VkPhysicalDeviceMemoryProperties, memoryHeapCount}
-        type FieldIsArray "memoryHeapCount"
-               VkPhysicalDeviceMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMemoryProperties, memoryHeapCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memoryHeapCount" VkPhysicalDeviceMemoryProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMemoryProperties, memoryHeapCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMemoryProperties, memoryHeapCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memoryHeapCount" VkPhysicalDeviceMemoryProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMemoryProperties, memoryHeapCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryHeaps" VkPhysicalDeviceMemoryProperties where
-        type FieldType "memoryHeaps" VkPhysicalDeviceMemoryProperties =
-             VkMemoryHeap
-        type FieldOptional "memoryHeaps" VkPhysicalDeviceMemoryProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryHeaps" VkPhysicalDeviceMemoryProperties =
-             #{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}
-        type FieldIsArray "memoryHeaps" VkPhysicalDeviceMemoryProperties =
-             'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}
-
-instance {-# OVERLAPPING #-}
-         CanReadFieldArray "memoryHeaps" VkPhysicalDeviceMemoryProperties
-         where
-        type FieldArrayLength "memoryHeaps"
-               VkPhysicalDeviceMemoryProperties
-             = VK_MAX_MEMORY_HEAPS
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = VK_MAX_MEMORY_HEAPS
-
-        {-# INLINE getFieldArrayUnsafe #-}
-        getFieldArrayUnsafe i = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}
-                      + sizeOf (undefined :: VkMemoryHeap) * i
-
-        {-# INLINE readFieldArrayUnsafe #-}
-        readFieldArrayUnsafe i p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}
-                 + sizeOf (undefined :: VkMemoryHeap) * i)
-
-instance {-# OVERLAPPING #-}
-         CanWriteFieldArray "memoryHeaps" VkPhysicalDeviceMemoryProperties
-         where
-        {-# INLINE writeFieldArrayUnsafe #-}
-        writeFieldArrayUnsafe i p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}
-                 + sizeOf (undefined :: VkMemoryHeap) * i)
-
-instance Show VkPhysicalDeviceMemoryProperties where
-        showsPrec d x
-          = showString "VkPhysicalDeviceMemoryProperties {" .
-              showString "memoryTypeCount = " .
-                showsPrec d (getField @"memoryTypeCount" x) .
-                  showString ", " .
-                    (showString "memoryTypes = [" .
-                       showsPrec d
-                         (let s = sizeOf
-                                    (undefined ::
-                                       FieldType "memoryTypes" VkPhysicalDeviceMemoryProperties)
-                              o = fieldOffset @"memoryTypes" @VkPhysicalDeviceMemoryProperties
-                              f i
-                                = peekByteOff (unsafePtr x) i ::
-                                    IO (FieldType "memoryTypes" VkPhysicalDeviceMemoryProperties)
-                            in
-                            unsafeDupablePerformIO . mapM f $
-                              map (\ i -> o + i * s) [0 .. VK_MAX_MEMORY_TYPES - 1])
-                         . showChar ']')
-                      .
-                      showString ", " .
-                        showString "memoryHeapCount = " .
-                          showsPrec d (getField @"memoryHeapCount" x) .
-                            showString ", " .
-                              (showString "memoryHeaps = [" .
-                                 showsPrec d
-                                   (let s = sizeOf
-                                              (undefined ::
-                                                 FieldType "memoryHeaps"
-                                                   VkPhysicalDeviceMemoryProperties)
-                                        o = fieldOffset @"memoryHeaps"
-                                              @VkPhysicalDeviceMemoryProperties
-                                        f i
-                                          = peekByteOff (unsafePtr x) i ::
-                                              IO
-                                                (FieldType "memoryHeaps"
-                                                   VkPhysicalDeviceMemoryProperties)
-                                      in
-                                      unsafeDupablePerformIO . mapM f $
-                                        map (\ i -> o + i * s) [0 .. VK_MAX_MEMORY_HEAPS - 1])
-                                   . showChar ']')
-                                . showChar '}'
-
--- | > typedef struct VkPhysicalDeviceMemoryProperties2 {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkPhysicalDeviceMemoryProperties memoryProperties;
---   > } VkPhysicalDeviceMemoryProperties2;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2 registry at www.khronos.org>
-data VkPhysicalDeviceMemoryProperties2 = VkPhysicalDeviceMemoryProperties2## Addr##
-                                                                            ByteArray##
-
-instance Eq VkPhysicalDeviceMemoryProperties2 where
-        (VkPhysicalDeviceMemoryProperties2## a _) ==
-          x@(VkPhysicalDeviceMemoryProperties2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceMemoryProperties2 where
-        (VkPhysicalDeviceMemoryProperties2## a _) `compare`
-          x@(VkPhysicalDeviceMemoryProperties2## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceMemoryProperties2 where
-        sizeOf ~_ = #{size VkPhysicalDeviceMemoryProperties2}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceMemoryProperties2}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceMemoryProperties2 where
-        unsafeAddr (VkPhysicalDeviceMemoryProperties2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceMemoryProperties2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceMemoryProperties2##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceMemoryProperties2 where
-        type StructFields VkPhysicalDeviceMemoryProperties2 =
-             '["sType", "pNext", "memoryProperties"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceMemoryProperties2 = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceMemoryProperties2 = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceMemoryProperties2 = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceMemoryProperties2 where
-        type FieldType "sType" VkPhysicalDeviceMemoryProperties2 =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceMemoryProperties2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceMemoryProperties2 =
-             #{offset VkPhysicalDeviceMemoryProperties2, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceMemoryProperties2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMemoryProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceMemoryProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMemoryProperties2, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMemoryProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceMemoryProperties2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMemoryProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceMemoryProperties2 where
-        type FieldType "pNext" VkPhysicalDeviceMemoryProperties2 = Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceMemoryProperties2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceMemoryProperties2 =
-             #{offset VkPhysicalDeviceMemoryProperties2, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceMemoryProperties2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMemoryProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceMemoryProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMemoryProperties2, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMemoryProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceMemoryProperties2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMemoryProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryProperties" VkPhysicalDeviceMemoryProperties2 where
-        type FieldType "memoryProperties" VkPhysicalDeviceMemoryProperties2
-             = VkPhysicalDeviceMemoryProperties
-        type FieldOptional "memoryProperties"
-               VkPhysicalDeviceMemoryProperties2
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryProperties"
-               VkPhysicalDeviceMemoryProperties2
-             =
-             #{offset VkPhysicalDeviceMemoryProperties2, memoryProperties}
-        type FieldIsArray "memoryProperties"
-               VkPhysicalDeviceMemoryProperties2
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMemoryProperties2, memoryProperties}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memoryProperties" VkPhysicalDeviceMemoryProperties2
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMemoryProperties2, memoryProperties})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMemoryProperties2, memoryProperties}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memoryProperties" VkPhysicalDeviceMemoryProperties2
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMemoryProperties2, memoryProperties}
-
-instance Show VkPhysicalDeviceMemoryProperties2 where
-        showsPrec d x
-          = showString "VkPhysicalDeviceMemoryProperties2 {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "memoryProperties = " .
-                            showsPrec d (getField @"memoryProperties" x) . showChar '}'
-
--- | Alias for `VkPhysicalDeviceMemoryProperties2`
-type VkPhysicalDeviceMemoryProperties2KHR =
-     VkPhysicalDeviceMemoryProperties2
-
--- | > typedef struct VkPhysicalDeviceMultiviewFeatures {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkBool32                         multiview;
---   >     VkBool32                         multiviewGeometryShader;
---   >     VkBool32                         multiviewTessellationShader;
---   > } VkPhysicalDeviceMultiviewFeatures;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeatures registry at www.khronos.org>
-data VkPhysicalDeviceMultiviewFeatures = VkPhysicalDeviceMultiviewFeatures## Addr##
-                                                                            ByteArray##
-
-instance Eq VkPhysicalDeviceMultiviewFeatures where
-        (VkPhysicalDeviceMultiviewFeatures## a _) ==
-          x@(VkPhysicalDeviceMultiviewFeatures## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceMultiviewFeatures where
-        (VkPhysicalDeviceMultiviewFeatures## a _) `compare`
-          x@(VkPhysicalDeviceMultiviewFeatures## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceMultiviewFeatures where
-        sizeOf ~_ = #{size VkPhysicalDeviceMultiviewFeatures}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceMultiviewFeatures}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceMultiviewFeatures where
-        unsafeAddr (VkPhysicalDeviceMultiviewFeatures## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceMultiviewFeatures## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceMultiviewFeatures##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceMultiviewFeatures where
-        type StructFields VkPhysicalDeviceMultiviewFeatures =
-             '["sType", "pNext", "multiview", "multiviewGeometryShader", -- ' closing tick for hsc2hs
-               "multiviewTessellationShader"]
-        type CUnionType VkPhysicalDeviceMultiviewFeatures = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceMultiviewFeatures = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceMultiviewFeatures =
-             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceMultiviewFeatures where
-        type FieldType "sType" VkPhysicalDeviceMultiviewFeatures =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceMultiviewFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceMultiviewFeatures =
-             #{offset VkPhysicalDeviceMultiviewFeatures, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceMultiviewFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceMultiviewFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewFeatures, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceMultiviewFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceMultiviewFeatures where
-        type FieldType "pNext" VkPhysicalDeviceMultiviewFeatures = Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceMultiviewFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceMultiviewFeatures =
-             #{offset VkPhysicalDeviceMultiviewFeatures, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceMultiviewFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceMultiviewFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewFeatures, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceMultiviewFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "multiview" VkPhysicalDeviceMultiviewFeatures where
-        type FieldType "multiview" VkPhysicalDeviceMultiviewFeatures =
-             VkBool32
-        type FieldOptional "multiview" VkPhysicalDeviceMultiviewFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "multiview" VkPhysicalDeviceMultiviewFeatures =
-             #{offset VkPhysicalDeviceMultiviewFeatures, multiview}
-        type FieldIsArray "multiview" VkPhysicalDeviceMultiviewFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewFeatures, multiview}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "multiview" VkPhysicalDeviceMultiviewFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewFeatures, multiview})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiview}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "multiview" VkPhysicalDeviceMultiviewFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiview}
-
-instance {-# OVERLAPPING #-}
-         HasField "multiviewGeometryShader"
-           VkPhysicalDeviceMultiviewFeatures
-         where
-        type FieldType "multiviewGeometryShader"
-               VkPhysicalDeviceMultiviewFeatures
-             = VkBool32
-        type FieldOptional "multiviewGeometryShader"
-               VkPhysicalDeviceMultiviewFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "multiviewGeometryShader"
-               VkPhysicalDeviceMultiviewFeatures
-             =
-             #{offset VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader}
-        type FieldIsArray "multiviewGeometryShader"
-               VkPhysicalDeviceMultiviewFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "multiviewGeometryShader"
-           VkPhysicalDeviceMultiviewFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "multiviewGeometryShader"
-           VkPhysicalDeviceMultiviewFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader}
-
-instance {-# OVERLAPPING #-}
-         HasField "multiviewTessellationShader"
-           VkPhysicalDeviceMultiviewFeatures
-         where
-        type FieldType "multiviewTessellationShader"
-               VkPhysicalDeviceMultiviewFeatures
-             = VkBool32
-        type FieldOptional "multiviewTessellationShader"
-               VkPhysicalDeviceMultiviewFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "multiviewTessellationShader"
-               VkPhysicalDeviceMultiviewFeatures
-             =
-             #{offset VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader}
-        type FieldIsArray "multiviewTessellationShader"
-               VkPhysicalDeviceMultiviewFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "multiviewTessellationShader"
-           VkPhysicalDeviceMultiviewFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "multiviewTessellationShader"
-           VkPhysicalDeviceMultiviewFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader}
-
-instance Show VkPhysicalDeviceMultiviewFeatures where
-        showsPrec d x
-          = showString "VkPhysicalDeviceMultiviewFeatures {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "multiview = " .
-                            showsPrec d (getField @"multiview" x) .
-                              showString ", " .
-                                showString "multiviewGeometryShader = " .
-                                  showsPrec d (getField @"multiviewGeometryShader" x) .
-                                    showString ", " .
-                                      showString "multiviewTessellationShader = " .
-                                        showsPrec d (getField @"multiviewTessellationShader" x) .
-                                          showChar '}'
-
--- | Alias for `VkPhysicalDeviceMultiviewFeatures`
-type VkPhysicalDeviceMultiviewFeaturesKHR =
-     VkPhysicalDeviceMultiviewFeatures
-
--- | > typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkBool32                         perViewPositionAllComponents;
---   > } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX registry at www.khronos.org>
-data VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## Addr##
-                                                                                                                        ByteArray##
-
-instance Eq VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        (VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## a _) ==
-          x@(VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        (VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## a _)
-          `compare`
-          x@(VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        unsafeAddr
-          (VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        type StructFields
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = '["sType", "pNext", "perViewPositionAllComponents"] -- ' closing tick for hsc2hs
-        type CUnionType
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = 'True -- ' closing tick for hsc2hs
-        type StructExtends
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType"
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        type FieldType "sType"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             =
-             #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType"
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext"
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        type FieldType "pNext"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             =
-             #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext"
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "perViewPositionAllComponents"
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        type FieldType "perViewPositionAllComponents"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = VkBool32
-        type FieldOptional "perViewPositionAllComponents"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "perViewPositionAllComponents"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             =
-             #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, perViewPositionAllComponents}
-        type FieldIsArray "perViewPositionAllComponents"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, perViewPositionAllComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "perViewPositionAllComponents"
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, perViewPositionAllComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, perViewPositionAllComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "perViewPositionAllComponents"
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, perViewPositionAllComponents}
-
-instance Show
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        showsPrec d x
-          = showString
-              "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {"
-              .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "perViewPositionAllComponents = " .
-                            showsPrec d (getField @"perViewPositionAllComponents" x) .
-                              showChar '}'
-
--- | > typedef struct VkPhysicalDeviceMultiviewProperties {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     uint32_t                         maxMultiviewViewCount;
---   >     uint32_t                         maxMultiviewInstanceIndex;
---   > } VkPhysicalDeviceMultiviewProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewProperties registry at www.khronos.org>
-data VkPhysicalDeviceMultiviewProperties = VkPhysicalDeviceMultiviewProperties## Addr##
-                                                                                ByteArray##
-
-instance Eq VkPhysicalDeviceMultiviewProperties where
-        (VkPhysicalDeviceMultiviewProperties## a _) ==
-          x@(VkPhysicalDeviceMultiviewProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceMultiviewProperties where
-        (VkPhysicalDeviceMultiviewProperties## a _) `compare`
-          x@(VkPhysicalDeviceMultiviewProperties## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceMultiviewProperties where
-        sizeOf ~_ = #{size VkPhysicalDeviceMultiviewProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceMultiviewProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceMultiviewProperties
-         where
-        unsafeAddr (VkPhysicalDeviceMultiviewProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceMultiviewProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceMultiviewProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceMultiviewProperties where
-        type StructFields VkPhysicalDeviceMultiviewProperties =
-             '["sType", "pNext", "maxMultiviewViewCount", -- ' closing tick for hsc2hs
-               "maxMultiviewInstanceIndex"]
-        type CUnionType VkPhysicalDeviceMultiviewProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceMultiviewProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceMultiviewProperties =
-             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceMultiviewProperties where
-        type FieldType "sType" VkPhysicalDeviceMultiviewProperties =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceMultiviewProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceMultiviewProperties =
-             #{offset VkPhysicalDeviceMultiviewProperties, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceMultiviewProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceMultiviewProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewProperties, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceMultiviewProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceMultiviewProperties where
-        type FieldType "pNext" VkPhysicalDeviceMultiviewProperties =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceMultiviewProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceMultiviewProperties =
-             #{offset VkPhysicalDeviceMultiviewProperties, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceMultiviewProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceMultiviewProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewProperties, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceMultiviewProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxMultiviewViewCount"
-           VkPhysicalDeviceMultiviewProperties
-         where
-        type FieldType "maxMultiviewViewCount"
-               VkPhysicalDeviceMultiviewProperties
-             = Word32
-        type FieldOptional "maxMultiviewViewCount"
-               VkPhysicalDeviceMultiviewProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxMultiviewViewCount"
-               VkPhysicalDeviceMultiviewProperties
-             =
-             #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewViewCount}
-        type FieldIsArray "maxMultiviewViewCount"
-               VkPhysicalDeviceMultiviewProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewViewCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxMultiviewViewCount"
-           VkPhysicalDeviceMultiviewProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewViewCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewViewCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxMultiviewViewCount"
-           VkPhysicalDeviceMultiviewProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewViewCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxMultiviewInstanceIndex"
-           VkPhysicalDeviceMultiviewProperties
-         where
-        type FieldType "maxMultiviewInstanceIndex"
-               VkPhysicalDeviceMultiviewProperties
-             = Word32
-        type FieldOptional "maxMultiviewInstanceIndex"
-               VkPhysicalDeviceMultiviewProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxMultiviewInstanceIndex"
-               VkPhysicalDeviceMultiviewProperties
-             =
-             #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewInstanceIndex}
-        type FieldIsArray "maxMultiviewInstanceIndex"
-               VkPhysicalDeviceMultiviewProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewInstanceIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxMultiviewInstanceIndex"
-           VkPhysicalDeviceMultiviewProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewInstanceIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewInstanceIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxMultiviewInstanceIndex"
-           VkPhysicalDeviceMultiviewProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewInstanceIndex}
-
-instance Show VkPhysicalDeviceMultiviewProperties where
-        showsPrec d x
-          = showString "VkPhysicalDeviceMultiviewProperties {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "maxMultiviewViewCount = " .
-                            showsPrec d (getField @"maxMultiviewViewCount" x) .
-                              showString ", " .
-                                showString "maxMultiviewInstanceIndex = " .
-                                  showsPrec d (getField @"maxMultiviewInstanceIndex" x) .
-                                    showChar '}'
-
--- | Alias for `VkPhysicalDeviceMultiviewProperties`
-type VkPhysicalDeviceMultiviewPropertiesKHR =
-     VkPhysicalDeviceMultiviewProperties
-
--- | > typedef struct VkPhysicalDevicePointClippingProperties {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkPointClippingBehavior      pointClippingBehavior;
---   > } VkPhysicalDevicePointClippingProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingProperties registry at www.khronos.org>
-data VkPhysicalDevicePointClippingProperties = VkPhysicalDevicePointClippingProperties## Addr##
-                                                                                        ByteArray##
-
-instance Eq VkPhysicalDevicePointClippingProperties where
-        (VkPhysicalDevicePointClippingProperties## a _) ==
-          x@(VkPhysicalDevicePointClippingProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDevicePointClippingProperties where
-        (VkPhysicalDevicePointClippingProperties## a _) `compare`
-          x@(VkPhysicalDevicePointClippingProperties## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDevicePointClippingProperties where
-        sizeOf ~_
-          = #{size VkPhysicalDevicePointClippingProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDevicePointClippingProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDevicePointClippingProperties
-         where
-        unsafeAddr (VkPhysicalDevicePointClippingProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDevicePointClippingProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDevicePointClippingProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDevicePointClippingProperties
-         where
-        type StructFields VkPhysicalDevicePointClippingProperties =
-             '["sType", "pNext", "pointClippingBehavior"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDevicePointClippingProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDevicePointClippingProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDevicePointClippingProperties =
-             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDevicePointClippingProperties where
-        type FieldType "sType" VkPhysicalDevicePointClippingProperties =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDevicePointClippingProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDevicePointClippingProperties =
-             #{offset VkPhysicalDevicePointClippingProperties, sType}
-        type FieldIsArray "sType" VkPhysicalDevicePointClippingProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevicePointClippingProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDevicePointClippingProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePointClippingProperties, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevicePointClippingProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDevicePointClippingProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevicePointClippingProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDevicePointClippingProperties where
-        type FieldType "pNext" VkPhysicalDevicePointClippingProperties =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDevicePointClippingProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDevicePointClippingProperties =
-             #{offset VkPhysicalDevicePointClippingProperties, pNext}
-        type FieldIsArray "pNext" VkPhysicalDevicePointClippingProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevicePointClippingProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDevicePointClippingProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePointClippingProperties, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevicePointClippingProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDevicePointClippingProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevicePointClippingProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "pointClippingBehavior"
-           VkPhysicalDevicePointClippingProperties
-         where
-        type FieldType "pointClippingBehavior"
-               VkPhysicalDevicePointClippingProperties
-             = VkPointClippingBehavior
-        type FieldOptional "pointClippingBehavior"
-               VkPhysicalDevicePointClippingProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pointClippingBehavior"
-               VkPhysicalDevicePointClippingProperties
-             =
-             #{offset VkPhysicalDevicePointClippingProperties, pointClippingBehavior}
-        type FieldIsArray "pointClippingBehavior"
-               VkPhysicalDevicePointClippingProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevicePointClippingProperties, pointClippingBehavior}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pointClippingBehavior"
-           VkPhysicalDevicePointClippingProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePointClippingProperties, pointClippingBehavior})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevicePointClippingProperties, pointClippingBehavior}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pointClippingBehavior"
-           VkPhysicalDevicePointClippingProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevicePointClippingProperties, pointClippingBehavior}
-
-instance Show VkPhysicalDevicePointClippingProperties where
-        showsPrec d x
-          = showString "VkPhysicalDevicePointClippingProperties {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "pointClippingBehavior = " .
-                            showsPrec d (getField @"pointClippingBehavior" x) . showChar '}'
-
--- | Alias for `VkPhysicalDevicePointClippingProperties`
-type VkPhysicalDevicePointClippingPropertiesKHR =
-     VkPhysicalDevicePointClippingProperties
-
--- | > typedef struct VkPhysicalDeviceProperties {
---   >     uint32_t       apiVersion;
---   >     uint32_t       driverVersion;
---   >     uint32_t       vendorID;
---   >     uint32_t       deviceID;
---   >     VkPhysicalDeviceType deviceType;
---   >     char           deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
---   >     uint8_t        pipelineCacheUUID[VK_UUID_SIZE];
---   >     VkPhysicalDeviceLimits limits;
---   >     VkPhysicalDeviceSparseProperties sparseProperties;
---   > } VkPhysicalDeviceProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceProperties VkPhysicalDeviceProperties registry at www.khronos.org>
-data VkPhysicalDeviceProperties = VkPhysicalDeviceProperties## Addr##
-                                                              ByteArray##
-
-instance Eq VkPhysicalDeviceProperties where
-        (VkPhysicalDeviceProperties## a _) ==
-          x@(VkPhysicalDeviceProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceProperties where
-        (VkPhysicalDeviceProperties## a _) `compare`
-          x@(VkPhysicalDeviceProperties## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceProperties where
-        sizeOf ~_ = #{size VkPhysicalDeviceProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkPhysicalDeviceProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceProperties where
-        unsafeAddr (VkPhysicalDeviceProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceProperties where
-        type StructFields VkPhysicalDeviceProperties =
-             '["apiVersion", "driverVersion", "vendorID", "deviceID", -- ' closing tick for hsc2hs
-               "deviceType", "deviceName", "pipelineCacheUUID", "limits",
-               "sparseProperties"]
-        type CUnionType VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceProperties = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "apiVersion" VkPhysicalDeviceProperties where
-        type FieldType "apiVersion" VkPhysicalDeviceProperties = Word32
-        type FieldOptional "apiVersion" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "apiVersion" VkPhysicalDeviceProperties =
-             #{offset VkPhysicalDeviceProperties, apiVersion}
-        type FieldIsArray "apiVersion" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties, apiVersion}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "apiVersion" VkPhysicalDeviceProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, apiVersion})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProperties, apiVersion}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "apiVersion" VkPhysicalDeviceProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProperties, apiVersion}
-
-instance {-# OVERLAPPING #-}
-         HasField "driverVersion" VkPhysicalDeviceProperties where
-        type FieldType "driverVersion" VkPhysicalDeviceProperties = Word32
-        type FieldOptional "driverVersion" VkPhysicalDeviceProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "driverVersion" VkPhysicalDeviceProperties =
-             #{offset VkPhysicalDeviceProperties, driverVersion}
-        type FieldIsArray "driverVersion" VkPhysicalDeviceProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties, driverVersion}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "driverVersion" VkPhysicalDeviceProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, driverVersion})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProperties, driverVersion}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "driverVersion" VkPhysicalDeviceProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProperties, driverVersion}
-
-instance {-# OVERLAPPING #-}
-         HasField "vendorID" VkPhysicalDeviceProperties where
-        type FieldType "vendorID" VkPhysicalDeviceProperties = Word32
-        type FieldOptional "vendorID" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "vendorID" VkPhysicalDeviceProperties =
-             #{offset VkPhysicalDeviceProperties, vendorID}
-        type FieldIsArray "vendorID" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties, vendorID}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "vendorID" VkPhysicalDeviceProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, vendorID})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProperties, vendorID}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "vendorID" VkPhysicalDeviceProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProperties, vendorID}
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceID" VkPhysicalDeviceProperties where
-        type FieldType "deviceID" VkPhysicalDeviceProperties = Word32
-        type FieldOptional "deviceID" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "deviceID" VkPhysicalDeviceProperties =
-             #{offset VkPhysicalDeviceProperties, deviceID}
-        type FieldIsArray "deviceID" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties, deviceID}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "deviceID" VkPhysicalDeviceProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, deviceID})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProperties, deviceID}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "deviceID" VkPhysicalDeviceProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProperties, deviceID}
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceType" VkPhysicalDeviceProperties where
-        type FieldType "deviceType" VkPhysicalDeviceProperties =
-             VkPhysicalDeviceType
-        type FieldOptional "deviceType" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "deviceType" VkPhysicalDeviceProperties =
-             #{offset VkPhysicalDeviceProperties, deviceType}
-        type FieldIsArray "deviceType" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties, deviceType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "deviceType" VkPhysicalDeviceProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, deviceType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProperties, deviceType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "deviceType" VkPhysicalDeviceProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProperties, deviceType}
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceName" VkPhysicalDeviceProperties where
-        type FieldType "deviceName" VkPhysicalDeviceProperties = CChar
-        type FieldOptional "deviceName" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "deviceName" VkPhysicalDeviceProperties =
-             #{offset VkPhysicalDeviceProperties, deviceName}
-        type FieldIsArray "deviceName" VkPhysicalDeviceProperties = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties, deviceName}
-
-instance {-# OVERLAPPING #-}
-         CanReadFieldArray "deviceName" VkPhysicalDeviceProperties where
-        type FieldArrayLength "deviceName" VkPhysicalDeviceProperties =
-             VK_MAX_PHYSICAL_DEVICE_NAME_SIZE
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = VK_MAX_PHYSICAL_DEVICE_NAME_SIZE
-
-        {-# INLINE getFieldArrayUnsafe #-}
-        getFieldArrayUnsafe i = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceProperties, deviceName} +
-                      sizeOf (undefined :: CChar) * i
-
-        {-# INLINE readFieldArrayUnsafe #-}
-        readFieldArrayUnsafe i p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceProperties, deviceName} +
-                 sizeOf (undefined :: CChar) * i)
-
-instance {-# OVERLAPPING #-}
-         CanWriteFieldArray "deviceName" VkPhysicalDeviceProperties where
-        {-# INLINE writeFieldArrayUnsafe #-}
-        writeFieldArrayUnsafe i p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceProperties, deviceName} +
-                 sizeOf (undefined :: CChar) * i)
-
-instance {-# OVERLAPPING #-}
-         HasField "pipelineCacheUUID" VkPhysicalDeviceProperties where
-        type FieldType "pipelineCacheUUID" VkPhysicalDeviceProperties =
-             Word8
-        type FieldOptional "pipelineCacheUUID" VkPhysicalDeviceProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pipelineCacheUUID" VkPhysicalDeviceProperties =
-             #{offset VkPhysicalDeviceProperties, pipelineCacheUUID}
-        type FieldIsArray "pipelineCacheUUID" VkPhysicalDeviceProperties =
-             'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties, pipelineCacheUUID}
-
-instance {-# OVERLAPPING #-}
-         CanReadFieldArray "pipelineCacheUUID" VkPhysicalDeviceProperties
-         where
-        type FieldArrayLength "pipelineCacheUUID"
-               VkPhysicalDeviceProperties
-             = VK_UUID_SIZE
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = VK_UUID_SIZE
-
-        {-# INLINE getFieldArrayUnsafe #-}
-        getFieldArrayUnsafe i = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceProperties, pipelineCacheUUID}
-                      + sizeOf (undefined :: Word8) * i
-
-        {-# INLINE readFieldArrayUnsafe #-}
-        readFieldArrayUnsafe i p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceProperties, pipelineCacheUUID}
-                 + sizeOf (undefined :: Word8) * i)
-
-instance {-# OVERLAPPING #-}
-         CanWriteFieldArray "pipelineCacheUUID" VkPhysicalDeviceProperties
-         where
-        {-# INLINE writeFieldArrayUnsafe #-}
-        writeFieldArrayUnsafe i p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceProperties, pipelineCacheUUID}
-                 + sizeOf (undefined :: Word8) * i)
-
-instance {-# OVERLAPPING #-}
-         HasField "limits" VkPhysicalDeviceProperties where
-        type FieldType "limits" VkPhysicalDeviceProperties =
-             VkPhysicalDeviceLimits
-        type FieldOptional "limits" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "limits" VkPhysicalDeviceProperties =
-             #{offset VkPhysicalDeviceProperties, limits}
-        type FieldIsArray "limits" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties, limits}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "limits" VkPhysicalDeviceProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, limits})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProperties, limits}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "limits" VkPhysicalDeviceProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProperties, limits}
-
-instance {-# OVERLAPPING #-}
-         HasField "sparseProperties" VkPhysicalDeviceProperties where
-        type FieldType "sparseProperties" VkPhysicalDeviceProperties =
-             VkPhysicalDeviceSparseProperties
-        type FieldOptional "sparseProperties" VkPhysicalDeviceProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sparseProperties" VkPhysicalDeviceProperties =
-             #{offset VkPhysicalDeviceProperties, sparseProperties}
-        type FieldIsArray "sparseProperties" VkPhysicalDeviceProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties, sparseProperties}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sparseProperties" VkPhysicalDeviceProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, sparseProperties})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProperties, sparseProperties}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sparseProperties" VkPhysicalDeviceProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProperties, sparseProperties}
-
-instance Show VkPhysicalDeviceProperties where
-        showsPrec d x
-          = showString "VkPhysicalDeviceProperties {" .
-              showString "apiVersion = " .
-                showsPrec d (getField @"apiVersion" x) .
-                  showString ", " .
-                    showString "driverVersion = " .
-                      showsPrec d (getField @"driverVersion" x) .
-                        showString ", " .
-                          showString "vendorID = " .
-                            showsPrec d (getField @"vendorID" x) .
-                              showString ", " .
-                                showString "deviceID = " .
-                                  showsPrec d (getField @"deviceID" x) .
-                                    showString ", " .
-                                      showString "deviceType = " .
-                                        showsPrec d (getField @"deviceType" x) .
-                                          showString ", " .
-                                            (showString "deviceName = [" .
-                                               showsPrec d
-                                                 (let s = sizeOf
-                                                            (undefined ::
-                                                               FieldType "deviceName"
-                                                                 VkPhysicalDeviceProperties)
-                                                      o = fieldOffset @"deviceName"
-                                                            @VkPhysicalDeviceProperties
-                                                      f i
-                                                        = peekByteOff (unsafePtr x) i ::
-                                                            IO
-                                                              (FieldType "deviceName"
-                                                                 VkPhysicalDeviceProperties)
-                                                    in
-                                                    unsafeDupablePerformIO . mapM f $
-                                                      map (\ i -> o + i * s)
-                                                        [0 .. VK_MAX_PHYSICAL_DEVICE_NAME_SIZE - 1])
-                                                 . showChar ']')
-                                              .
-                                              showString ", " .
-                                                (showString "pipelineCacheUUID = [" .
-                                                   showsPrec d
-                                                     (let s = sizeOf
-                                                                (undefined ::
-                                                                   FieldType "pipelineCacheUUID"
-                                                                     VkPhysicalDeviceProperties)
-                                                          o = fieldOffset @"pipelineCacheUUID"
-                                                                @VkPhysicalDeviceProperties
-                                                          f i
-                                                            = peekByteOff (unsafePtr x) i ::
-                                                                IO
-                                                                  (FieldType "pipelineCacheUUID"
-                                                                     VkPhysicalDeviceProperties)
-                                                        in
-                                                        unsafeDupablePerformIO . mapM f $
-                                                          map (\ i -> o + i * s)
-                                                            [0 .. VK_UUID_SIZE - 1])
-                                                     . showChar ']')
-                                                  .
-                                                  showString ", " .
-                                                    showString "limits = " .
-                                                      showsPrec d (getField @"limits" x) .
-                                                        showString ", " .
-                                                          showString "sparseProperties = " .
-                                                            showsPrec d
-                                                              (getField @"sparseProperties" x)
-                                                              . showChar '}'
-
--- | > typedef struct VkPhysicalDeviceProperties2 {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkPhysicalDeviceProperties       properties;
---   > } VkPhysicalDeviceProperties2;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2 registry at www.khronos.org>
-data VkPhysicalDeviceProperties2 = VkPhysicalDeviceProperties2## Addr##
-                                                                ByteArray##
-
-instance Eq VkPhysicalDeviceProperties2 where
-        (VkPhysicalDeviceProperties2## a _) ==
-          x@(VkPhysicalDeviceProperties2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceProperties2 where
-        (VkPhysicalDeviceProperties2## a _) `compare`
-          x@(VkPhysicalDeviceProperties2## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceProperties2 where
-        sizeOf ~_ = #{size VkPhysicalDeviceProperties2}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkPhysicalDeviceProperties2}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceProperties2 where
-        unsafeAddr (VkPhysicalDeviceProperties2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceProperties2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceProperties2##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceProperties2 where
-        type StructFields VkPhysicalDeviceProperties2 =
-             '["sType", "pNext", "properties"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceProperties2 = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceProperties2 = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceProperties2 where
-        type FieldType "sType" VkPhysicalDeviceProperties2 =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceProperties2 =
-             #{offset VkPhysicalDeviceProperties2, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties2, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceProperties2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceProperties2 where
-        type FieldType "pNext" VkPhysicalDeviceProperties2 = Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceProperties2 =
-             #{offset VkPhysicalDeviceProperties2, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties2, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceProperties2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "properties" VkPhysicalDeviceProperties2 where
-        type FieldType "properties" VkPhysicalDeviceProperties2 =
-             VkPhysicalDeviceProperties
-        type FieldOptional "properties" VkPhysicalDeviceProperties2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "properties" VkPhysicalDeviceProperties2 =
-             #{offset VkPhysicalDeviceProperties2, properties}
-        type FieldIsArray "properties" VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties2, properties}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "properties" VkPhysicalDeviceProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties2, properties})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProperties2, properties}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "properties" VkPhysicalDeviceProperties2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProperties2, properties}
-
-instance Show VkPhysicalDeviceProperties2 where
-        showsPrec d x
-          = showString "VkPhysicalDeviceProperties2 {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "properties = " .
-                            showsPrec d (getField @"properties" x) . showChar '}'
-
--- | Alias for `VkPhysicalDeviceProperties2`
-type VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2
-
--- | > typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
---   >     VkStructureType sType;
---   >     void*                               pNext;
---   >     VkBool32                            protectedMemory;
---   > } VkPhysicalDeviceProtectedMemoryFeatures;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceProtectedMemoryFeatures VkPhysicalDeviceProtectedMemoryFeatures registry at www.khronos.org>
-data VkPhysicalDeviceProtectedMemoryFeatures = VkPhysicalDeviceProtectedMemoryFeatures## Addr##
-                                                                                        ByteArray##
-
-instance Eq VkPhysicalDeviceProtectedMemoryFeatures where
-        (VkPhysicalDeviceProtectedMemoryFeatures## a _) ==
-          x@(VkPhysicalDeviceProtectedMemoryFeatures## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceProtectedMemoryFeatures where
-        (VkPhysicalDeviceProtectedMemoryFeatures## a _) `compare`
-          x@(VkPhysicalDeviceProtectedMemoryFeatures## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceProtectedMemoryFeatures where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceProtectedMemoryFeatures}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceProtectedMemoryFeatures}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceProtectedMemoryFeatures
-         where
-        unsafeAddr (VkPhysicalDeviceProtectedMemoryFeatures## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceProtectedMemoryFeatures## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceProtectedMemoryFeatures##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceProtectedMemoryFeatures
-         where
-        type StructFields VkPhysicalDeviceProtectedMemoryFeatures =
-             '["sType", "pNext", "protectedMemory"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceProtectedMemoryFeatures = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceProtectedMemoryFeatures = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceProtectedMemoryFeatures =
-             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceProtectedMemoryFeatures where
-        type FieldType "sType" VkPhysicalDeviceProtectedMemoryFeatures =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceProtectedMemoryFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceProtectedMemoryFeatures =
-             #{offset VkPhysicalDeviceProtectedMemoryFeatures, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceProtectedMemoryFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProtectedMemoryFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceProtectedMemoryFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryFeatures, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceProtectedMemoryFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceProtectedMemoryFeatures where
-        type FieldType "pNext" VkPhysicalDeviceProtectedMemoryFeatures =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceProtectedMemoryFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceProtectedMemoryFeatures =
-             #{offset VkPhysicalDeviceProtectedMemoryFeatures, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceProtectedMemoryFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProtectedMemoryFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceProtectedMemoryFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryFeatures, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceProtectedMemoryFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "protectedMemory" VkPhysicalDeviceProtectedMemoryFeatures
-         where
-        type FieldType "protectedMemory"
-               VkPhysicalDeviceProtectedMemoryFeatures
-             = VkBool32
-        type FieldOptional "protectedMemory"
-               VkPhysicalDeviceProtectedMemoryFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "protectedMemory"
-               VkPhysicalDeviceProtectedMemoryFeatures
-             =
-             #{offset VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory}
-        type FieldIsArray "protectedMemory"
-               VkPhysicalDeviceProtectedMemoryFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "protectedMemory"
-           VkPhysicalDeviceProtectedMemoryFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "protectedMemory"
-           VkPhysicalDeviceProtectedMemoryFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory}
-
-instance Show VkPhysicalDeviceProtectedMemoryFeatures where
-        showsPrec d x
-          = showString "VkPhysicalDeviceProtectedMemoryFeatures {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "protectedMemory = " .
-                            showsPrec d (getField @"protectedMemory" x) . showChar '}'
-
--- | > typedef struct VkPhysicalDeviceProtectedMemoryProperties {
---   >     VkStructureType sType;
---   >     void*                               pNext;
---   >     VkBool32                            protectedNoFault;
---   > } VkPhysicalDeviceProtectedMemoryProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceProtectedMemoryProperties VkPhysicalDeviceProtectedMemoryProperties registry at www.khronos.org>
-data VkPhysicalDeviceProtectedMemoryProperties = VkPhysicalDeviceProtectedMemoryProperties## Addr##
-                                                                                            ByteArray##
-
-instance Eq VkPhysicalDeviceProtectedMemoryProperties where
-        (VkPhysicalDeviceProtectedMemoryProperties## a _) ==
-          x@(VkPhysicalDeviceProtectedMemoryProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceProtectedMemoryProperties where
-        (VkPhysicalDeviceProtectedMemoryProperties## a _) `compare`
-          x@(VkPhysicalDeviceProtectedMemoryProperties## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceProtectedMemoryProperties where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceProtectedMemoryProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceProtectedMemoryProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceProtectedMemoryProperties
-         where
-        unsafeAddr (VkPhysicalDeviceProtectedMemoryProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceProtectedMemoryProperties## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceProtectedMemoryProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceProtectedMemoryProperties
-         where
-        type StructFields VkPhysicalDeviceProtectedMemoryProperties =
-             '["sType", "pNext", "protectedNoFault"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceProtectedMemoryProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceProtectedMemoryProperties =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceProtectedMemoryProperties =
-             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceProtectedMemoryProperties where
-        type FieldType "sType" VkPhysicalDeviceProtectedMemoryProperties =
-             VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceProtectedMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceProtectedMemoryProperties
-             =
-             #{offset VkPhysicalDeviceProtectedMemoryProperties, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceProtectedMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProtectedMemoryProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceProtectedMemoryProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryProperties, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceProtectedMemoryProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceProtectedMemoryProperties where
-        type FieldType "pNext" VkPhysicalDeviceProtectedMemoryProperties =
-             Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceProtectedMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceProtectedMemoryProperties
-             =
-             #{offset VkPhysicalDeviceProtectedMemoryProperties, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceProtectedMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProtectedMemoryProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceProtectedMemoryProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryProperties, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceProtectedMemoryProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "protectedNoFault"
-           VkPhysicalDeviceProtectedMemoryProperties
-         where
-        type FieldType "protectedNoFault"
-               VkPhysicalDeviceProtectedMemoryProperties
-             = VkBool32
-        type FieldOptional "protectedNoFault"
-               VkPhysicalDeviceProtectedMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "protectedNoFault"
-               VkPhysicalDeviceProtectedMemoryProperties
-             =
-             #{offset VkPhysicalDeviceProtectedMemoryProperties, protectedNoFault}
-        type FieldIsArray "protectedNoFault"
-               VkPhysicalDeviceProtectedMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProtectedMemoryProperties, protectedNoFault}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "protectedNoFault"
-           VkPhysicalDeviceProtectedMemoryProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryProperties, protectedNoFault})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, protectedNoFault}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "protectedNoFault"
-           VkPhysicalDeviceProtectedMemoryProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, protectedNoFault}
-
-instance Show VkPhysicalDeviceProtectedMemoryProperties where
-        showsPrec d x
-          = showString "VkPhysicalDeviceProtectedMemoryProperties {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "protectedNoFault = " .
-                            showsPrec d (getField @"protectedNoFault" x) . showChar '}'
-
--- | > typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     uint32_t                         maxPushDescriptors;
---   > } VkPhysicalDevicePushDescriptorPropertiesKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDevicePushDescriptorPropertiesKHR VkPhysicalDevicePushDescriptorPropertiesKHR registry at www.khronos.org>
-data VkPhysicalDevicePushDescriptorPropertiesKHR = VkPhysicalDevicePushDescriptorPropertiesKHR## Addr##
-                                                                                                ByteArray##
-
-instance Eq VkPhysicalDevicePushDescriptorPropertiesKHR where
-        (VkPhysicalDevicePushDescriptorPropertiesKHR## a _) ==
-          x@(VkPhysicalDevicePushDescriptorPropertiesKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDevicePushDescriptorPropertiesKHR where
-        (VkPhysicalDevicePushDescriptorPropertiesKHR## a _) `compare`
-          x@(VkPhysicalDevicePushDescriptorPropertiesKHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDevicePushDescriptorPropertiesKHR where
-        sizeOf ~_
-          = #{size VkPhysicalDevicePushDescriptorPropertiesKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDevicePushDescriptorPropertiesKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDevicePushDescriptorPropertiesKHR
-         where
-        unsafeAddr (VkPhysicalDevicePushDescriptorPropertiesKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDevicePushDescriptorPropertiesKHR## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDevicePushDescriptorPropertiesKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDevicePushDescriptorPropertiesKHR
-         where
-        type StructFields VkPhysicalDevicePushDescriptorPropertiesKHR =
-             '["sType", "pNext", "maxPushDescriptors"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDevicePushDescriptorPropertiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDevicePushDescriptorPropertiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDevicePushDescriptorPropertiesKHR =
-             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDevicePushDescriptorPropertiesKHR where
-        type FieldType "sType" VkPhysicalDevicePushDescriptorPropertiesKHR
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDevicePushDescriptorPropertiesKHR
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDevicePushDescriptorPropertiesKHR
-             =
-             #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDevicePushDescriptorPropertiesKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDevicePushDescriptorPropertiesKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDevicePushDescriptorPropertiesKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDevicePushDescriptorPropertiesKHR where
-        type FieldType "pNext" VkPhysicalDevicePushDescriptorPropertiesKHR
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDevicePushDescriptorPropertiesKHR
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDevicePushDescriptorPropertiesKHR
-             =
-             #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDevicePushDescriptorPropertiesKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDevicePushDescriptorPropertiesKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDevicePushDescriptorPropertiesKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPushDescriptors"
-           VkPhysicalDevicePushDescriptorPropertiesKHR
-         where
-        type FieldType "maxPushDescriptors"
-               VkPhysicalDevicePushDescriptorPropertiesKHR
-             = Word32
-        type FieldOptional "maxPushDescriptors"
-               VkPhysicalDevicePushDescriptorPropertiesKHR
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPushDescriptors"
-               VkPhysicalDevicePushDescriptorPropertiesKHR
-             =
-             #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, maxPushDescriptors}
-        type FieldIsArray "maxPushDescriptors"
-               VkPhysicalDevicePushDescriptorPropertiesKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, maxPushDescriptors}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPushDescriptors"
-           VkPhysicalDevicePushDescriptorPropertiesKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, maxPushDescriptors})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, maxPushDescriptors}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPushDescriptors"
-           VkPhysicalDevicePushDescriptorPropertiesKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, maxPushDescriptors}
-
-instance Show VkPhysicalDevicePushDescriptorPropertiesKHR where
-        showsPrec d x
-          = showString "VkPhysicalDevicePushDescriptorPropertiesKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "maxPushDescriptors = " .
-                            showsPrec d (getField @"maxPushDescriptors" x) . showChar '}'
-
--- | > typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkSampleCountFlags               sampleLocationSampleCounts;
---   >     VkExtent2D                       maxSampleLocationGridSize;
---   >     float                            sampleLocationCoordinateRange[2];
---   >     uint32_t                         sampleLocationSubPixelBits;
---   >     VkBool32                         variableSampleLocations;
---   > } VkPhysicalDeviceSampleLocationsPropertiesEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSampleLocationsPropertiesEXT VkPhysicalDeviceSampleLocationsPropertiesEXT registry at www.khronos.org>
-data VkPhysicalDeviceSampleLocationsPropertiesEXT = VkPhysicalDeviceSampleLocationsPropertiesEXT## Addr##
-                                                                                                  ByteArray##
-
-instance Eq VkPhysicalDeviceSampleLocationsPropertiesEXT where
-        (VkPhysicalDeviceSampleLocationsPropertiesEXT## a _) ==
-          x@(VkPhysicalDeviceSampleLocationsPropertiesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceSampleLocationsPropertiesEXT where
-        (VkPhysicalDeviceSampleLocationsPropertiesEXT## a _) `compare`
-          x@(VkPhysicalDeviceSampleLocationsPropertiesEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceSampleLocationsPropertiesEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceSampleLocationsPropertiesEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        unsafeAddr (VkPhysicalDeviceSampleLocationsPropertiesEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceSampleLocationsPropertiesEXT## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceSampleLocationsPropertiesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        type StructFields VkPhysicalDeviceSampleLocationsPropertiesEXT =
-             '["sType", "pNext", "sampleLocationSampleCounts", -- ' closing tick for hsc2hs
-               "maxSampleLocationGridSize", "sampleLocationCoordinateRange",
-               "sampleLocationSubPixelBits", "variableSampleLocations"]
-        type CUnionType VkPhysicalDeviceSampleLocationsPropertiesEXT =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceSampleLocationsPropertiesEXT =
-             'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceSampleLocationsPropertiesEXT =
-             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceSampleLocationsPropertiesEXT where
-        type FieldType "sType" VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceSampleLocationsPropertiesEXT where
-        type FieldType "pNext" VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampleLocationSampleCounts"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        type FieldType "sampleLocationSampleCounts"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = VkSampleCountFlags
-        type FieldOptional "sampleLocationSampleCounts"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sampleLocationSampleCounts"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSampleCounts}
-        type FieldIsArray "sampleLocationSampleCounts"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampleLocationSampleCounts"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampleLocationSampleCounts"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxSampleLocationGridSize"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        type FieldType "maxSampleLocationGridSize"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = VkExtent2D
-        type FieldOptional "maxSampleLocationGridSize"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxSampleLocationGridSize"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, maxSampleLocationGridSize}
-        type FieldIsArray "maxSampleLocationGridSize"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, maxSampleLocationGridSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxSampleLocationGridSize"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, maxSampleLocationGridSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, maxSampleLocationGridSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxSampleLocationGridSize"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, maxSampleLocationGridSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampleLocationCoordinateRange"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        type FieldType "sampleLocationCoordinateRange"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = #{type float}
-        type FieldOptional "sampleLocationCoordinateRange"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sampleLocationCoordinateRange"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}
-        type FieldIsArray "sampleLocationCoordinateRange"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}
-
-instance {-# OVERLAPPING #-}
-         CanReadFieldArray "sampleLocationCoordinateRange"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        type FieldArrayLength "sampleLocationCoordinateRange"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 2
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 2
-
-        {-# INLINE getFieldArrayUnsafe #-}
-        getFieldArrayUnsafe i = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}
-                      + sizeOf (undefined :: #{type float}) * i
-
-        {-# INLINE readFieldArrayUnsafe #-}
-        readFieldArrayUnsafe i p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}
-                 + sizeOf (undefined :: #{type float}) * i)
-
-instance {-# OVERLAPPING #-}
-         CanWriteFieldArray "sampleLocationCoordinateRange"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# INLINE writeFieldArrayUnsafe #-}
-        writeFieldArrayUnsafe i p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}
-                 + sizeOf (undefined :: #{type float}) * i)
-
-instance {-# OVERLAPPING #-}
-         HasField "sampleLocationSubPixelBits"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        type FieldType "sampleLocationSubPixelBits"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = Word32
-        type FieldOptional "sampleLocationSubPixelBits"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sampleLocationSubPixelBits"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSubPixelBits}
-        type FieldIsArray "sampleLocationSubPixelBits"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSubPixelBits}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampleLocationSubPixelBits"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSubPixelBits})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSubPixelBits}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampleLocationSubPixelBits"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSubPixelBits}
-
-instance {-# OVERLAPPING #-}
-         HasField "variableSampleLocations"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        type FieldType "variableSampleLocations"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = VkBool32
-        type FieldOptional "variableSampleLocations"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "variableSampleLocations"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, variableSampleLocations}
-        type FieldIsArray "variableSampleLocations"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, variableSampleLocations}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "variableSampleLocations"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, variableSampleLocations})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, variableSampleLocations}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "variableSampleLocations"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, variableSampleLocations}
-
-instance Show VkPhysicalDeviceSampleLocationsPropertiesEXT where
-        showsPrec d x
-          = showString "VkPhysicalDeviceSampleLocationsPropertiesEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "sampleLocationSampleCounts = " .
-                            showsPrec d (getField @"sampleLocationSampleCounts" x) .
-                              showString ", " .
-                                showString "maxSampleLocationGridSize = " .
-                                  showsPrec d (getField @"maxSampleLocationGridSize" x) .
-                                    showString ", " .
-                                      (showString "sampleLocationCoordinateRange = [" .
-                                         showsPrec d
-                                           (let s = sizeOf
-                                                      (undefined ::
-                                                         FieldType "sampleLocationCoordinateRange"
-                                                           VkPhysicalDeviceSampleLocationsPropertiesEXT)
-                                                o = fieldOffset @"sampleLocationCoordinateRange"
-                                                      @VkPhysicalDeviceSampleLocationsPropertiesEXT
-                                                f i
-                                                  = peekByteOff (unsafePtr x) i ::
-                                                      IO
-                                                        (FieldType "sampleLocationCoordinateRange"
-                                                           VkPhysicalDeviceSampleLocationsPropertiesEXT)
-                                              in
-                                              unsafeDupablePerformIO . mapM f $
-                                                map (\ i -> o + i * s) [0 .. 2 - 1])
-                                           . showChar ']')
-                                        .
-                                        showString ", " .
-                                          showString "sampleLocationSubPixelBits = " .
-                                            showsPrec d (getField @"sampleLocationSubPixelBits" x) .
-                                              showString ", " .
-                                                showString "variableSampleLocations = " .
-                                                  showsPrec d
-                                                    (getField @"variableSampleLocations" x)
-                                                    . showChar '}'
-
--- | > typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
---   >     VkStructureType sType;
---   >     void*                  pNext;
---   >     VkBool32               filterMinmaxSingleComponentFormats;
---   >     VkBool32               filterMinmaxImageComponentMapping;
---   > } VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT registry at www.khronos.org>
-data VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## Addr##
-                                                                                                          ByteArray##
-
-instance Eq VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT where
-        (VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## a _) ==
-          x@(VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT where
-        (VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## a _) `compare`
-          x@(VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        unsafeAddr (VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## a _)
-          = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        type StructFields VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             =
-             '["sType", "pNext", "filterMinmaxSingleComponentFormats", -- ' closing tick for hsc2hs
-               "filterMinmaxImageComponentMapping"]
-        type CUnionType VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        type FieldType "sType"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType"
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        type FieldType "pNext"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext"
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "filterMinmaxSingleComponentFormats"
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        type FieldType "filterMinmaxSingleComponentFormats"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = VkBool32
-        type FieldOptional "filterMinmaxSingleComponentFormats"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "filterMinmaxSingleComponentFormats"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxSingleComponentFormats}
-        type FieldIsArray "filterMinmaxSingleComponentFormats"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxSingleComponentFormats}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "filterMinmaxSingleComponentFormats"
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxSingleComponentFormats})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxSingleComponentFormats}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "filterMinmaxSingleComponentFormats"
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxSingleComponentFormats}
-
-instance {-# OVERLAPPING #-}
-         HasField "filterMinmaxImageComponentMapping"
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        type FieldType "filterMinmaxImageComponentMapping"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = VkBool32
-        type FieldOptional "filterMinmaxImageComponentMapping"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "filterMinmaxImageComponentMapping"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxImageComponentMapping}
-        type FieldIsArray "filterMinmaxImageComponentMapping"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxImageComponentMapping}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "filterMinmaxImageComponentMapping"
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxImageComponentMapping})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxImageComponentMapping}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "filterMinmaxImageComponentMapping"
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxImageComponentMapping}
-
-instance Show VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        showsPrec d x
-          = showString "VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "filterMinmaxSingleComponentFormats = " .
-                            showsPrec d (getField @"filterMinmaxSingleComponentFormats" x) .
-                              showString ", " .
-                                showString "filterMinmaxImageComponentMapping = " .
-                                  showsPrec d (getField @"filterMinmaxImageComponentMapping" x) .
-                                    showChar '}'
-
--- | > typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
---   >     VkStructureType sType;
---   >     void*      pNext;
---   >     VkBool32                         samplerYcbcrConversion;
---   > } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeatures registry at www.khronos.org>
-data VkPhysicalDeviceSamplerYcbcrConversionFeatures = VkPhysicalDeviceSamplerYcbcrConversionFeatures## Addr##
-                                                                                                      ByteArray##
-
-instance Eq VkPhysicalDeviceSamplerYcbcrConversionFeatures where
-        (VkPhysicalDeviceSamplerYcbcrConversionFeatures## a _) ==
-          x@(VkPhysicalDeviceSamplerYcbcrConversionFeatures## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceSamplerYcbcrConversionFeatures where
-        (VkPhysicalDeviceSamplerYcbcrConversionFeatures## a _) `compare`
-          x@(VkPhysicalDeviceSamplerYcbcrConversionFeatures## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceSamplerYcbcrConversionFeatures}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceSamplerYcbcrConversionFeatures}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        unsafeAddr (VkPhysicalDeviceSamplerYcbcrConversionFeatures## a _)
-          = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPhysicalDeviceSamplerYcbcrConversionFeatures## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceSamplerYcbcrConversionFeatures##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        type StructFields VkPhysicalDeviceSamplerYcbcrConversionFeatures =
-             '["sType", "pNext", "samplerYcbcrConversion"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceSamplerYcbcrConversionFeatures =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceSamplerYcbcrConversionFeatures =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceSamplerYcbcrConversionFeatures =
-             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        type FieldType "sType"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             =
-             #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        type FieldType "pNext"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             =
-             #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "samplerYcbcrConversion"
-           VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        type FieldType "samplerYcbcrConversion"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             = VkBool32
-        type FieldOptional "samplerYcbcrConversion"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "samplerYcbcrConversion"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             =
-             #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion}
-        type FieldIsArray "samplerYcbcrConversion"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "samplerYcbcrConversion"
-           VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "samplerYcbcrConversion"
-           VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion}
-
-instance Show VkPhysicalDeviceSamplerYcbcrConversionFeatures where
-        showsPrec d x
-          = showString "VkPhysicalDeviceSamplerYcbcrConversionFeatures {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "samplerYcbcrConversion = " .
-                            showsPrec d (getField @"samplerYcbcrConversion" x) . showChar '}'
-
--- | Alias for `VkPhysicalDeviceSamplerYcbcrConversionFeatures`
-type VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR =
-     VkPhysicalDeviceSamplerYcbcrConversionFeatures
-
--- | > typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
---   >     VkStructureType sType;
---   >     void*    pNext;
---   >     uint32_t shaderEngineCount;
---   >     uint32_t shaderArraysPerEngineCount;
---   >     uint32_t computeUnitsPerShaderArray;
---   >     uint32_t simdPerComputeUnit;
---   >     uint32_t wavefrontsPerSimd;
---   >     uint32_t wavefrontSize;
---   >     uint32_t sgprsPerSimd;
---   >     uint32_t minSgprAllocation;
---   >     uint32_t maxSgprAllocation;
---   >     uint32_t sgprAllocationGranularity;
---   >     uint32_t vgprsPerSimd;
---   >     uint32_t minVgprAllocation;
---   >     uint32_t maxVgprAllocation;
---   >     uint32_t vgprAllocationGranularity;
---   > } VkPhysicalDeviceShaderCorePropertiesAMD;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceShaderCorePropertiesAMD VkPhysicalDeviceShaderCorePropertiesAMD registry at www.khronos.org>
-data VkPhysicalDeviceShaderCorePropertiesAMD = VkPhysicalDeviceShaderCorePropertiesAMD## Addr##
-                                                                                        ByteArray##
-
-instance Eq VkPhysicalDeviceShaderCorePropertiesAMD where
-        (VkPhysicalDeviceShaderCorePropertiesAMD## a _) ==
-          x@(VkPhysicalDeviceShaderCorePropertiesAMD## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceShaderCorePropertiesAMD where
-        (VkPhysicalDeviceShaderCorePropertiesAMD## a _) `compare`
-          x@(VkPhysicalDeviceShaderCorePropertiesAMD## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceShaderCorePropertiesAMD where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceShaderCorePropertiesAMD}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceShaderCorePropertiesAMD}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        unsafeAddr (VkPhysicalDeviceShaderCorePropertiesAMD## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceShaderCorePropertiesAMD## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceShaderCorePropertiesAMD##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        type StructFields VkPhysicalDeviceShaderCorePropertiesAMD =
-             '["sType", "pNext", "shaderEngineCount", -- ' closing tick for hsc2hs
-               "shaderArraysPerEngineCount", "computeUnitsPerShaderArray",
-               "simdPerComputeUnit", "wavefrontsPerSimd", "wavefrontSize",
-               "sgprsPerSimd", "minSgprAllocation", "maxSgprAllocation",
-               "sgprAllocationGranularity", "vgprsPerSimd", "minVgprAllocation",
-               "maxVgprAllocation", "vgprAllocationGranularity"]
-        type CUnionType VkPhysicalDeviceShaderCorePropertiesAMD = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceShaderCorePropertiesAMD = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceShaderCorePropertiesAMD =
-             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceShaderCorePropertiesAMD where
-        type FieldType "sType" VkPhysicalDeviceShaderCorePropertiesAMD =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceShaderCorePropertiesAMD =
-             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceShaderCorePropertiesAMD =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceShaderCorePropertiesAMD where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceShaderCorePropertiesAMD where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceShaderCorePropertiesAMD where
-        type FieldType "pNext" VkPhysicalDeviceShaderCorePropertiesAMD =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceShaderCorePropertiesAMD =
-             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceShaderCorePropertiesAMD =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceShaderCorePropertiesAMD where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceShaderCorePropertiesAMD where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderEngineCount"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        type FieldType "shaderEngineCount"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = Word32
-        type FieldOptional "shaderEngineCount"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderEngineCount"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             =
-             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderEngineCount}
-        type FieldIsArray "shaderEngineCount"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderEngineCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderEngineCount"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderEngineCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderEngineCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderEngineCount"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderEngineCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderArraysPerEngineCount"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        type FieldType "shaderArraysPerEngineCount"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = Word32
-        type FieldOptional "shaderArraysPerEngineCount"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderArraysPerEngineCount"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             =
-             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderArraysPerEngineCount}
-        type FieldIsArray "shaderArraysPerEngineCount"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderArraysPerEngineCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderArraysPerEngineCount"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderArraysPerEngineCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderArraysPerEngineCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderArraysPerEngineCount"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderArraysPerEngineCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "computeUnitsPerShaderArray"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        type FieldType "computeUnitsPerShaderArray"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = Word32
-        type FieldOptional "computeUnitsPerShaderArray"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "computeUnitsPerShaderArray"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             =
-             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, computeUnitsPerShaderArray}
-        type FieldIsArray "computeUnitsPerShaderArray"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, computeUnitsPerShaderArray}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "computeUnitsPerShaderArray"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, computeUnitsPerShaderArray})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, computeUnitsPerShaderArray}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "computeUnitsPerShaderArray"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, computeUnitsPerShaderArray}
-
-instance {-# OVERLAPPING #-}
-         HasField "simdPerComputeUnit"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        type FieldType "simdPerComputeUnit"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = Word32
-        type FieldOptional "simdPerComputeUnit"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "simdPerComputeUnit"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             =
-             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, simdPerComputeUnit}
-        type FieldIsArray "simdPerComputeUnit"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, simdPerComputeUnit}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "simdPerComputeUnit"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, simdPerComputeUnit})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, simdPerComputeUnit}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "simdPerComputeUnit"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, simdPerComputeUnit}
-
-instance {-# OVERLAPPING #-}
-         HasField "wavefrontsPerSimd"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        type FieldType "wavefrontsPerSimd"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = Word32
-        type FieldOptional "wavefrontsPerSimd"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "wavefrontsPerSimd"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             =
-             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontsPerSimd}
-        type FieldIsArray "wavefrontsPerSimd"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontsPerSimd}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "wavefrontsPerSimd"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontsPerSimd})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontsPerSimd}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "wavefrontsPerSimd"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontsPerSimd}
-
-instance {-# OVERLAPPING #-}
-         HasField "wavefrontSize" VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        type FieldType "wavefrontSize"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = Word32
-        type FieldOptional "wavefrontSize"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "wavefrontSize"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             =
-             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontSize}
-        type FieldIsArray "wavefrontSize"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "wavefrontSize"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "wavefrontSize"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "sgprsPerSimd" VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        type FieldType "sgprsPerSimd"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = Word32
-        type FieldOptional "sgprsPerSimd"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sgprsPerSimd"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             =
-             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprsPerSimd}
-        type FieldIsArray "sgprsPerSimd"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprsPerSimd}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sgprsPerSimd" VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprsPerSimd})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprsPerSimd}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sgprsPerSimd"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprsPerSimd}
-
-instance {-# OVERLAPPING #-}
-         HasField "minSgprAllocation"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        type FieldType "minSgprAllocation"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = Word32
-        type FieldOptional "minSgprAllocation"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minSgprAllocation"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             =
-             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minSgprAllocation}
-        type FieldIsArray "minSgprAllocation"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minSgprAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minSgprAllocation"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minSgprAllocation})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minSgprAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minSgprAllocation"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minSgprAllocation}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxSgprAllocation"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        type FieldType "maxSgprAllocation"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = Word32
-        type FieldOptional "maxSgprAllocation"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxSgprAllocation"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             =
-             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxSgprAllocation}
-        type FieldIsArray "maxSgprAllocation"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxSgprAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxSgprAllocation"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxSgprAllocation})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxSgprAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxSgprAllocation"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxSgprAllocation}
-
-instance {-# OVERLAPPING #-}
-         HasField "sgprAllocationGranularity"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        type FieldType "sgprAllocationGranularity"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = Word32
-        type FieldOptional "sgprAllocationGranularity"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sgprAllocationGranularity"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             =
-             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprAllocationGranularity}
-        type FieldIsArray "sgprAllocationGranularity"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprAllocationGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sgprAllocationGranularity"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprAllocationGranularity})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprAllocationGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sgprAllocationGranularity"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprAllocationGranularity}
-
-instance {-# OVERLAPPING #-}
-         HasField "vgprsPerSimd" VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        type FieldType "vgprsPerSimd"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = Word32
-        type FieldOptional "vgprsPerSimd"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "vgprsPerSimd"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             =
-             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprsPerSimd}
-        type FieldIsArray "vgprsPerSimd"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprsPerSimd}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "vgprsPerSimd" VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprsPerSimd})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprsPerSimd}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "vgprsPerSimd"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprsPerSimd}
-
-instance {-# OVERLAPPING #-}
-         HasField "minVgprAllocation"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        type FieldType "minVgprAllocation"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = Word32
-        type FieldOptional "minVgprAllocation"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minVgprAllocation"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             =
-             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minVgprAllocation}
-        type FieldIsArray "minVgprAllocation"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minVgprAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minVgprAllocation"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minVgprAllocation})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minVgprAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minVgprAllocation"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minVgprAllocation}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxVgprAllocation"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        type FieldType "maxVgprAllocation"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = Word32
-        type FieldOptional "maxVgprAllocation"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxVgprAllocation"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             =
-             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxVgprAllocation}
-        type FieldIsArray "maxVgprAllocation"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxVgprAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxVgprAllocation"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxVgprAllocation})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxVgprAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxVgprAllocation"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxVgprAllocation}
-
-instance {-# OVERLAPPING #-}
-         HasField "vgprAllocationGranularity"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        type FieldType "vgprAllocationGranularity"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = Word32
-        type FieldOptional "vgprAllocationGranularity"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "vgprAllocationGranularity"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             =
-             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprAllocationGranularity}
-        type FieldIsArray "vgprAllocationGranularity"
-               VkPhysicalDeviceShaderCorePropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprAllocationGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "vgprAllocationGranularity"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprAllocationGranularity})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprAllocationGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "vgprAllocationGranularity"
-           VkPhysicalDeviceShaderCorePropertiesAMD
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprAllocationGranularity}
-
-instance Show VkPhysicalDeviceShaderCorePropertiesAMD where
-        showsPrec d x
-          = showString "VkPhysicalDeviceShaderCorePropertiesAMD {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "shaderEngineCount = " .
-                            showsPrec d (getField @"shaderEngineCount" x) .
-                              showString ", " .
-                                showString "shaderArraysPerEngineCount = " .
-                                  showsPrec d (getField @"shaderArraysPerEngineCount" x) .
-                                    showString ", " .
-                                      showString "computeUnitsPerShaderArray = " .
-                                        showsPrec d (getField @"computeUnitsPerShaderArray" x) .
-                                          showString ", " .
-                                            showString "simdPerComputeUnit = " .
-                                              showsPrec d (getField @"simdPerComputeUnit" x) .
-                                                showString ", " .
-                                                  showString "wavefrontsPerSimd = " .
-                                                    showsPrec d (getField @"wavefrontsPerSimd" x) .
-                                                      showString ", " .
-                                                        showString "wavefrontSize = " .
-                                                          showsPrec d (getField @"wavefrontSize" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString "sgprsPerSimd = " .
-                                                                showsPrec d
-                                                                  (getField @"sgprsPerSimd" x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString
-                                                                      "minSgprAllocation = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"minSgprAllocation"
-                                                                           x)
-                                                                        .
-                                                                        showString ", " .
-                                                                          showString
-                                                                            "maxSgprAllocation = "
-                                                                            .
-                                                                            showsPrec d
-                                                                              (getField
-                                                                                 @"maxSgprAllocation"
-                                                                                 x)
-                                                                              .
-                                                                              showString ", " .
-                                                                                showString
-                                                                                  "sgprAllocationGranularity = "
-                                                                                  .
-                                                                                  showsPrec d
-                                                                                    (getField
-                                                                                       @"sgprAllocationGranularity"
-                                                                                       x)
-                                                                                    .
-                                                                                    showString ", "
-                                                                                      .
-                                                                                      showString
-                                                                                        "vgprsPerSimd = "
-                                                                                        .
-                                                                                        showsPrec d
-                                                                                          (getField
-                                                                                             @"vgprsPerSimd"
-                                                                                             x)
-                                                                                          .
-                                                                                          showString
-                                                                                            ", "
-                                                                                            .
-                                                                                            showString
-                                                                                              "minVgprAllocation = "
-                                                                                              .
-                                                                                              showsPrec
-                                                                                                d
-                                                                                                (getField
-                                                                                                   @"minVgprAllocation"
-                                                                                                   x)
-                                                                                                .
-                                                                                                showString
-                                                                                                  ", "
-                                                                                                  .
-                                                                                                  showString
-                                                                                                    "maxVgprAllocation = "
-                                                                                                    .
-                                                                                                    showsPrec
-                                                                                                      d
-                                                                                                      (getField
-                                                                                                         @"maxVgprAllocation"
-                                                                                                         x)
-                                                                                                      .
-                                                                                                      showString
-                                                                                                        ", "
-                                                                                                        .
-                                                                                                        showString
-                                                                                                          "vgprAllocationGranularity = "
-                                                                                                          .
-                                                                                                          showsPrec
-                                                                                                            d
-                                                                                                            (getField
-                                                                                                               @"vgprAllocationGranularity"
-                                                                                                               x)
-                                                                                                            .
-                                                                                                            showChar
-                                                                                                              '}'
-
--- | > typedef struct VkPhysicalDeviceShaderDrawParameterFeatures {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkBool32                         shaderDrawParameters;
---   > } VkPhysicalDeviceShaderDrawParameterFeatures;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceShaderDrawParameterFeatures VkPhysicalDeviceShaderDrawParameterFeatures registry at www.khronos.org>
-data VkPhysicalDeviceShaderDrawParameterFeatures = VkPhysicalDeviceShaderDrawParameterFeatures## Addr##
-                                                                                                ByteArray##
-
-instance Eq VkPhysicalDeviceShaderDrawParameterFeatures where
-        (VkPhysicalDeviceShaderDrawParameterFeatures## a _) ==
-          x@(VkPhysicalDeviceShaderDrawParameterFeatures## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceShaderDrawParameterFeatures where
-        (VkPhysicalDeviceShaderDrawParameterFeatures## a _) `compare`
-          x@(VkPhysicalDeviceShaderDrawParameterFeatures## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceShaderDrawParameterFeatures where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceShaderDrawParameterFeatures}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceShaderDrawParameterFeatures}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceShaderDrawParameterFeatures
-         where
-        unsafeAddr (VkPhysicalDeviceShaderDrawParameterFeatures## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceShaderDrawParameterFeatures## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceShaderDrawParameterFeatures##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceShaderDrawParameterFeatures
-         where
-        type StructFields VkPhysicalDeviceShaderDrawParameterFeatures =
-             '["sType", "pNext", "shaderDrawParameters"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceShaderDrawParameterFeatures =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceShaderDrawParameterFeatures =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceShaderDrawParameterFeatures =
-             '[VkPhysicalDeviceFeatures2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceShaderDrawParameterFeatures where
-        type FieldType "sType" VkPhysicalDeviceShaderDrawParameterFeatures
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceShaderDrawParameterFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceShaderDrawParameterFeatures
-             =
-             #{offset VkPhysicalDeviceShaderDrawParameterFeatures, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceShaderDrawParameterFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderDrawParameterFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceShaderDrawParameterFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderDrawParameterFeatures, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceShaderDrawParameterFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceShaderDrawParameterFeatures where
-        type FieldType "pNext" VkPhysicalDeviceShaderDrawParameterFeatures
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceShaderDrawParameterFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceShaderDrawParameterFeatures
-             =
-             #{offset VkPhysicalDeviceShaderDrawParameterFeatures, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceShaderDrawParameterFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderDrawParameterFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceShaderDrawParameterFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderDrawParameterFeatures, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceShaderDrawParameterFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderDrawParameters"
-           VkPhysicalDeviceShaderDrawParameterFeatures
-         where
-        type FieldType "shaderDrawParameters"
-               VkPhysicalDeviceShaderDrawParameterFeatures
-             = VkBool32
-        type FieldOptional "shaderDrawParameters"
-               VkPhysicalDeviceShaderDrawParameterFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderDrawParameters"
-               VkPhysicalDeviceShaderDrawParameterFeatures
-             =
-             #{offset VkPhysicalDeviceShaderDrawParameterFeatures, shaderDrawParameters}
-        type FieldIsArray "shaderDrawParameters"
-               VkPhysicalDeviceShaderDrawParameterFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderDrawParameterFeatures, shaderDrawParameters}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderDrawParameters"
-           VkPhysicalDeviceShaderDrawParameterFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderDrawParameterFeatures, shaderDrawParameters})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, shaderDrawParameters}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderDrawParameters"
-           VkPhysicalDeviceShaderDrawParameterFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, shaderDrawParameters}
-
-instance Show VkPhysicalDeviceShaderDrawParameterFeatures where
-        showsPrec d x
-          = showString "VkPhysicalDeviceShaderDrawParameterFeatures {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "shaderDrawParameters = " .
-                            showsPrec d (getField @"shaderDrawParameters" x) . showChar '}'
-
--- | > typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkFormat                         format;
---   >     VkImageType                      type;
---   >     VkSampleCountFlagBits            samples;
---   >     VkImageUsageFlags                usage;
---   >     VkImageTiling                    tiling;
---   > } VkPhysicalDeviceSparseImageFormatInfo2;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2 registry at www.khronos.org>
-data VkPhysicalDeviceSparseImageFormatInfo2 = VkPhysicalDeviceSparseImageFormatInfo2## Addr##
-                                                                                      ByteArray##
-
-instance Eq VkPhysicalDeviceSparseImageFormatInfo2 where
-        (VkPhysicalDeviceSparseImageFormatInfo2## a _) ==
-          x@(VkPhysicalDeviceSparseImageFormatInfo2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceSparseImageFormatInfo2 where
-        (VkPhysicalDeviceSparseImageFormatInfo2## a _) `compare`
-          x@(VkPhysicalDeviceSparseImageFormatInfo2## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceSparseImageFormatInfo2 where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceSparseImageFormatInfo2}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceSparseImageFormatInfo2}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceSparseImageFormatInfo2
-         where
-        unsafeAddr (VkPhysicalDeviceSparseImageFormatInfo2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceSparseImageFormatInfo2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceSparseImageFormatInfo2##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceSparseImageFormatInfo2 where
-        type StructFields VkPhysicalDeviceSparseImageFormatInfo2 =
-             '["sType", "pNext", "format", "type", "samples", "usage", "tiling"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceSparseImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceSparseImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceSparseImageFormatInfo2 = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceSparseImageFormatInfo2 where
-        type FieldType "sType" VkPhysicalDeviceSparseImageFormatInfo2 =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceSparseImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceSparseImageFormatInfo2 =
-             #{offset VkPhysicalDeviceSparseImageFormatInfo2, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceSparseImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceSparseImageFormatInfo2 where
-        type FieldType "pNext" VkPhysicalDeviceSparseImageFormatInfo2 =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceSparseImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceSparseImageFormatInfo2 =
-             #{offset VkPhysicalDeviceSparseImageFormatInfo2, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceSparseImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "format" VkPhysicalDeviceSparseImageFormatInfo2 where
-        type FieldType "format" VkPhysicalDeviceSparseImageFormatInfo2 =
-             VkFormat
-        type FieldOptional "format" VkPhysicalDeviceSparseImageFormatInfo2
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "format" VkPhysicalDeviceSparseImageFormatInfo2 =
-             #{offset VkPhysicalDeviceSparseImageFormatInfo2, format}
-        type FieldIsArray "format" VkPhysicalDeviceSparseImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, format}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "format" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, format})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, format}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "format" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, format}
-
-instance {-# OVERLAPPING #-}
-         HasField "type" VkPhysicalDeviceSparseImageFormatInfo2 where
-        type FieldType "type" VkPhysicalDeviceSparseImageFormatInfo2 =
-             VkImageType
-        type FieldOptional "type" VkPhysicalDeviceSparseImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "type" VkPhysicalDeviceSparseImageFormatInfo2 =
-             #{offset VkPhysicalDeviceSparseImageFormatInfo2, type}
-        type FieldIsArray "type" VkPhysicalDeviceSparseImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, type}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "type" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, type})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, type}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "type" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, type}
-
-instance {-# OVERLAPPING #-}
-         HasField "samples" VkPhysicalDeviceSparseImageFormatInfo2 where
-        type FieldType "samples" VkPhysicalDeviceSparseImageFormatInfo2 =
-             VkSampleCountFlagBits
-        type FieldOptional "samples" VkPhysicalDeviceSparseImageFormatInfo2
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "samples" VkPhysicalDeviceSparseImageFormatInfo2 =
-             #{offset VkPhysicalDeviceSparseImageFormatInfo2, samples}
-        type FieldIsArray "samples" VkPhysicalDeviceSparseImageFormatInfo2
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, samples}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "samples" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, samples})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, samples}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "samples" VkPhysicalDeviceSparseImageFormatInfo2
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, samples}
-
-instance {-# OVERLAPPING #-}
-         HasField "usage" VkPhysicalDeviceSparseImageFormatInfo2 where
-        type FieldType "usage" VkPhysicalDeviceSparseImageFormatInfo2 =
-             VkImageUsageFlags
-        type FieldOptional "usage" VkPhysicalDeviceSparseImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "usage" VkPhysicalDeviceSparseImageFormatInfo2 =
-             #{offset VkPhysicalDeviceSparseImageFormatInfo2, usage}
-        type FieldIsArray "usage" VkPhysicalDeviceSparseImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, usage}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "usage" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, usage})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, usage}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "usage" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, usage}
-
-instance {-# OVERLAPPING #-}
-         HasField "tiling" VkPhysicalDeviceSparseImageFormatInfo2 where
-        type FieldType "tiling" VkPhysicalDeviceSparseImageFormatInfo2 =
-             VkImageTiling
-        type FieldOptional "tiling" VkPhysicalDeviceSparseImageFormatInfo2
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "tiling" VkPhysicalDeviceSparseImageFormatInfo2 =
-             #{offset VkPhysicalDeviceSparseImageFormatInfo2, tiling}
-        type FieldIsArray "tiling" VkPhysicalDeviceSparseImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, tiling}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "tiling" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, tiling})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, tiling}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "tiling" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, tiling}
-
-instance Show VkPhysicalDeviceSparseImageFormatInfo2 where
-        showsPrec d x
-          = showString "VkPhysicalDeviceSparseImageFormatInfo2 {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "format = " .
-                            showsPrec d (getField @"format" x) .
-                              showString ", " .
-                                showString "type = " .
-                                  showsPrec d (getField @"type" x) .
-                                    showString ", " .
-                                      showString "samples = " .
-                                        showsPrec d (getField @"samples" x) .
-                                          showString ", " .
-                                            showString "usage = " .
-                                              showsPrec d (getField @"usage" x) .
-                                                showString ", " .
-                                                  showString "tiling = " .
-                                                    showsPrec d (getField @"tiling" x) .
-                                                      showChar '}'
-
--- | Alias for `VkPhysicalDeviceSparseImageFormatInfo2`
-type VkPhysicalDeviceSparseImageFormatInfo2KHR =
-     VkPhysicalDeviceSparseImageFormatInfo2
-
--- | > typedef struct VkPhysicalDeviceSparseProperties {
---   >     VkBool32               residencyStandard2DBlockShape;
---   >     VkBool32               residencyStandard2DMultisampleBlockShape;
---   >     VkBool32               residencyStandard3DBlockShape;
---   >     VkBool32               residencyAlignedMipSize;
---   >     VkBool32               residencyNonResidentStrict;
---   > } VkPhysicalDeviceSparseProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSparseProperties VkPhysicalDeviceSparseProperties registry at www.khronos.org>
-data VkPhysicalDeviceSparseProperties = VkPhysicalDeviceSparseProperties## Addr##
-                                                                          ByteArray##
-
-instance Eq VkPhysicalDeviceSparseProperties where
-        (VkPhysicalDeviceSparseProperties## a _) ==
-          x@(VkPhysicalDeviceSparseProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceSparseProperties where
-        (VkPhysicalDeviceSparseProperties## a _) `compare`
-          x@(VkPhysicalDeviceSparseProperties## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceSparseProperties where
-        sizeOf ~_ = #{size VkPhysicalDeviceSparseProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceSparseProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceSparseProperties where
-        unsafeAddr (VkPhysicalDeviceSparseProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceSparseProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceSparseProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceSparseProperties where
-        type StructFields VkPhysicalDeviceSparseProperties =
-             '["residencyStandard2DBlockShape", -- ' closing tick for hsc2hs
-               "residencyStandard2DMultisampleBlockShape",
-               "residencyStandard3DBlockShape", "residencyAlignedMipSize",
-               "residencyNonResidentStrict"]
-        type CUnionType VkPhysicalDeviceSparseProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceSparseProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceSparseProperties = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "residencyStandard2DBlockShape"
-           VkPhysicalDeviceSparseProperties
-         where
-        type FieldType "residencyStandard2DBlockShape"
-               VkPhysicalDeviceSparseProperties
-             = VkBool32
-        type FieldOptional "residencyStandard2DBlockShape"
-               VkPhysicalDeviceSparseProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "residencyStandard2DBlockShape"
-               VkPhysicalDeviceSparseProperties
-             =
-             #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DBlockShape}
-        type FieldIsArray "residencyStandard2DBlockShape"
-               VkPhysicalDeviceSparseProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DBlockShape}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "residencyStandard2DBlockShape"
-           VkPhysicalDeviceSparseProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DBlockShape})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DBlockShape}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "residencyStandard2DBlockShape"
-           VkPhysicalDeviceSparseProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DBlockShape}
-
-instance {-# OVERLAPPING #-}
-         HasField "residencyStandard2DMultisampleBlockShape"
-           VkPhysicalDeviceSparseProperties
-         where
-        type FieldType "residencyStandard2DMultisampleBlockShape"
-               VkPhysicalDeviceSparseProperties
-             = VkBool32
-        type FieldOptional "residencyStandard2DMultisampleBlockShape"
-               VkPhysicalDeviceSparseProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "residencyStandard2DMultisampleBlockShape"
-               VkPhysicalDeviceSparseProperties
-             =
-             #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DMultisampleBlockShape}
-        type FieldIsArray "residencyStandard2DMultisampleBlockShape"
-               VkPhysicalDeviceSparseProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DMultisampleBlockShape}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "residencyStandard2DMultisampleBlockShape"
-           VkPhysicalDeviceSparseProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DMultisampleBlockShape})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DMultisampleBlockShape}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "residencyStandard2DMultisampleBlockShape"
-           VkPhysicalDeviceSparseProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DMultisampleBlockShape}
-
-instance {-# OVERLAPPING #-}
-         HasField "residencyStandard3DBlockShape"
-           VkPhysicalDeviceSparseProperties
-         where
-        type FieldType "residencyStandard3DBlockShape"
-               VkPhysicalDeviceSparseProperties
-             = VkBool32
-        type FieldOptional "residencyStandard3DBlockShape"
-               VkPhysicalDeviceSparseProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "residencyStandard3DBlockShape"
-               VkPhysicalDeviceSparseProperties
-             =
-             #{offset VkPhysicalDeviceSparseProperties, residencyStandard3DBlockShape}
-        type FieldIsArray "residencyStandard3DBlockShape"
-               VkPhysicalDeviceSparseProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseProperties, residencyStandard3DBlockShape}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "residencyStandard3DBlockShape"
-           VkPhysicalDeviceSparseProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseProperties, residencyStandard3DBlockShape})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard3DBlockShape}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "residencyStandard3DBlockShape"
-           VkPhysicalDeviceSparseProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard3DBlockShape}
-
-instance {-# OVERLAPPING #-}
-         HasField "residencyAlignedMipSize" VkPhysicalDeviceSparseProperties
-         where
-        type FieldType "residencyAlignedMipSize"
-               VkPhysicalDeviceSparseProperties
-             = VkBool32
-        type FieldOptional "residencyAlignedMipSize"
-               VkPhysicalDeviceSparseProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "residencyAlignedMipSize"
-               VkPhysicalDeviceSparseProperties
-             =
-             #{offset VkPhysicalDeviceSparseProperties, residencyAlignedMipSize}
-        type FieldIsArray "residencyAlignedMipSize"
-               VkPhysicalDeviceSparseProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseProperties, residencyAlignedMipSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "residencyAlignedMipSize"
-           VkPhysicalDeviceSparseProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseProperties, residencyAlignedMipSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyAlignedMipSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "residencyAlignedMipSize"
-           VkPhysicalDeviceSparseProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyAlignedMipSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "residencyNonResidentStrict"
-           VkPhysicalDeviceSparseProperties
-         where
-        type FieldType "residencyNonResidentStrict"
-               VkPhysicalDeviceSparseProperties
-             = VkBool32
-        type FieldOptional "residencyNonResidentStrict"
-               VkPhysicalDeviceSparseProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "residencyNonResidentStrict"
-               VkPhysicalDeviceSparseProperties
-             =
-             #{offset VkPhysicalDeviceSparseProperties, residencyNonResidentStrict}
-        type FieldIsArray "residencyNonResidentStrict"
-               VkPhysicalDeviceSparseProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseProperties, residencyNonResidentStrict}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "residencyNonResidentStrict"
-           VkPhysicalDeviceSparseProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseProperties, residencyNonResidentStrict})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyNonResidentStrict}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "residencyNonResidentStrict"
-           VkPhysicalDeviceSparseProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyNonResidentStrict}
-
-instance Show VkPhysicalDeviceSparseProperties where
-        showsPrec d x
-          = showString "VkPhysicalDeviceSparseProperties {" .
-              showString "residencyStandard2DBlockShape = " .
-                showsPrec d (getField @"residencyStandard2DBlockShape" x) .
-                  showString ", " .
-                    showString "residencyStandard2DMultisampleBlockShape = " .
-                      showsPrec d
-                        (getField @"residencyStandard2DMultisampleBlockShape" x)
-                        .
-                        showString ", " .
-                          showString "residencyStandard3DBlockShape = " .
-                            showsPrec d (getField @"residencyStandard3DBlockShape" x) .
-                              showString ", " .
-                                showString "residencyAlignedMipSize = " .
-                                  showsPrec d (getField @"residencyAlignedMipSize" x) .
-                                    showString ", " .
-                                      showString "residencyNonResidentStrict = " .
-                                        showsPrec d (getField @"residencyNonResidentStrict" x) .
-                                          showChar '}'
-
--- | > typedef struct VkPhysicalDeviceSubgroupProperties {
---   >     VkStructureType sType;
---   >     void*                   pNext;
---   >     uint32_t                      subgroupSize;
---   >     VkShaderStageFlags            supportedStages;
---   >     VkSubgroupFeatureFlags        supportedOperations;
---   >     VkBool32 quadOperationsInAllStages;
---   > } VkPhysicalDeviceSubgroupProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSubgroupProperties VkPhysicalDeviceSubgroupProperties registry at www.khronos.org>
-data VkPhysicalDeviceSubgroupProperties = VkPhysicalDeviceSubgroupProperties## Addr##
-                                                                              ByteArray##
-
-instance Eq VkPhysicalDeviceSubgroupProperties where
-        (VkPhysicalDeviceSubgroupProperties## a _) ==
-          x@(VkPhysicalDeviceSubgroupProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceSubgroupProperties where
-        (VkPhysicalDeviceSubgroupProperties## a _) `compare`
-          x@(VkPhysicalDeviceSubgroupProperties## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceSubgroupProperties where
-        sizeOf ~_ = #{size VkPhysicalDeviceSubgroupProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceSubgroupProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceSubgroupProperties where
-        unsafeAddr (VkPhysicalDeviceSubgroupProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceSubgroupProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceSubgroupProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceSubgroupProperties where
-        type StructFields VkPhysicalDeviceSubgroupProperties =
-             '["sType", "pNext", "subgroupSize", "supportedStages", -- ' closing tick for hsc2hs
-               "supportedOperations", "quadOperationsInAllStages"]
-        type CUnionType VkPhysicalDeviceSubgroupProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceSubgroupProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceSubgroupProperties =
-             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceSubgroupProperties where
-        type FieldType "sType" VkPhysicalDeviceSubgroupProperties =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceSubgroupProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceSubgroupProperties =
-             #{offset VkPhysicalDeviceSubgroupProperties, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceSubgroupProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSubgroupProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceSubgroupProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceSubgroupProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceSubgroupProperties where
-        type FieldType "pNext" VkPhysicalDeviceSubgroupProperties =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceSubgroupProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceSubgroupProperties =
-             #{offset VkPhysicalDeviceSubgroupProperties, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceSubgroupProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSubgroupProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceSubgroupProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceSubgroupProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "subgroupSize" VkPhysicalDeviceSubgroupProperties where
-        type FieldType "subgroupSize" VkPhysicalDeviceSubgroupProperties =
-             Word32
-        type FieldOptional "subgroupSize"
-               VkPhysicalDeviceSubgroupProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "subgroupSize" VkPhysicalDeviceSubgroupProperties
-             =
-             #{offset VkPhysicalDeviceSubgroupProperties, subgroupSize}
-        type FieldIsArray "subgroupSize" VkPhysicalDeviceSubgroupProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSubgroupProperties, subgroupSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "subgroupSize" VkPhysicalDeviceSubgroupProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, subgroupSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, subgroupSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "subgroupSize" VkPhysicalDeviceSubgroupProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, subgroupSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "supportedStages" VkPhysicalDeviceSubgroupProperties where
-        type FieldType "supportedStages" VkPhysicalDeviceSubgroupProperties
-             = VkShaderStageFlags
-        type FieldOptional "supportedStages"
-               VkPhysicalDeviceSubgroupProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "supportedStages"
-               VkPhysicalDeviceSubgroupProperties
-             =
-             #{offset VkPhysicalDeviceSubgroupProperties, supportedStages}
-        type FieldIsArray "supportedStages"
-               VkPhysicalDeviceSubgroupProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSubgroupProperties, supportedStages}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "supportedStages" VkPhysicalDeviceSubgroupProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, supportedStages})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, supportedStages}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "supportedStages" VkPhysicalDeviceSubgroupProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, supportedStages}
-
-instance {-# OVERLAPPING #-}
-         HasField "supportedOperations" VkPhysicalDeviceSubgroupProperties
-         where
-        type FieldType "supportedOperations"
-               VkPhysicalDeviceSubgroupProperties
-             = VkSubgroupFeatureFlags
-        type FieldOptional "supportedOperations"
-               VkPhysicalDeviceSubgroupProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "supportedOperations"
-               VkPhysicalDeviceSubgroupProperties
-             =
-             #{offset VkPhysicalDeviceSubgroupProperties, supportedOperations}
-        type FieldIsArray "supportedOperations"
-               VkPhysicalDeviceSubgroupProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSubgroupProperties, supportedOperations}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "supportedOperations"
-           VkPhysicalDeviceSubgroupProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, supportedOperations})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, supportedOperations}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "supportedOperations"
-           VkPhysicalDeviceSubgroupProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, supportedOperations}
-
-instance {-# OVERLAPPING #-}
-         HasField "quadOperationsInAllStages"
-           VkPhysicalDeviceSubgroupProperties
-         where
-        type FieldType "quadOperationsInAllStages"
-               VkPhysicalDeviceSubgroupProperties
-             = VkBool32
-        type FieldOptional "quadOperationsInAllStages"
-               VkPhysicalDeviceSubgroupProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "quadOperationsInAllStages"
-               VkPhysicalDeviceSubgroupProperties
-             =
-             #{offset VkPhysicalDeviceSubgroupProperties, quadOperationsInAllStages}
-        type FieldIsArray "quadOperationsInAllStages"
-               VkPhysicalDeviceSubgroupProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSubgroupProperties, quadOperationsInAllStages}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "quadOperationsInAllStages"
-           VkPhysicalDeviceSubgroupProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, quadOperationsInAllStages})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, quadOperationsInAllStages}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "quadOperationsInAllStages"
-           VkPhysicalDeviceSubgroupProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, quadOperationsInAllStages}
-
-instance Show VkPhysicalDeviceSubgroupProperties where
-        showsPrec d x
-          = showString "VkPhysicalDeviceSubgroupProperties {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "subgroupSize = " .
-                            showsPrec d (getField @"subgroupSize" x) .
-                              showString ", " .
-                                showString "supportedStages = " .
-                                  showsPrec d (getField @"supportedStages" x) .
-                                    showString ", " .
-                                      showString "supportedOperations = " .
-                                        showsPrec d (getField @"supportedOperations" x) .
-                                          showString ", " .
-                                            showString "quadOperationsInAllStages = " .
-                                              showsPrec d (getField @"quadOperationsInAllStages" x)
-                                                . showChar '}'
-
--- | > typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
---   >     VkStructureType sType;
---   >     const void* pNext;
---   >     VkSurfaceKHR surface;
---   > } VkPhysicalDeviceSurfaceInfo2KHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSurfaceInfo2KHR VkPhysicalDeviceSurfaceInfo2KHR registry at www.khronos.org>
-data VkPhysicalDeviceSurfaceInfo2KHR = VkPhysicalDeviceSurfaceInfo2KHR## Addr##
-                                                                        ByteArray##
-
-instance Eq VkPhysicalDeviceSurfaceInfo2KHR where
-        (VkPhysicalDeviceSurfaceInfo2KHR## a _) ==
-          x@(VkPhysicalDeviceSurfaceInfo2KHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceSurfaceInfo2KHR where
-        (VkPhysicalDeviceSurfaceInfo2KHR## a _) `compare`
-          x@(VkPhysicalDeviceSurfaceInfo2KHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceSurfaceInfo2KHR where
-        sizeOf ~_ = #{size VkPhysicalDeviceSurfaceInfo2KHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceSurfaceInfo2KHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceSurfaceInfo2KHR where
-        unsafeAddr (VkPhysicalDeviceSurfaceInfo2KHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceSurfaceInfo2KHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceSurfaceInfo2KHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceSurfaceInfo2KHR where
-        type StructFields VkPhysicalDeviceSurfaceInfo2KHR =
-             '["sType", "pNext", "surface"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceSurfaceInfo2KHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceSurfaceInfo2KHR where
-        type FieldType "sType" VkPhysicalDeviceSurfaceInfo2KHR =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceSurfaceInfo2KHR =
-             #{offset VkPhysicalDeviceSurfaceInfo2KHR, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSurfaceInfo2KHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceSurfaceInfo2KHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSurfaceInfo2KHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceSurfaceInfo2KHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceSurfaceInfo2KHR where
-        type FieldType "pNext" VkPhysicalDeviceSurfaceInfo2KHR = Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceSurfaceInfo2KHR =
-             #{offset VkPhysicalDeviceSurfaceInfo2KHR, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSurfaceInfo2KHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceSurfaceInfo2KHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSurfaceInfo2KHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceSurfaceInfo2KHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "surface" VkPhysicalDeviceSurfaceInfo2KHR where
-        type FieldType "surface" VkPhysicalDeviceSurfaceInfo2KHR =
-             VkSurfaceKHR
-        type FieldOptional "surface" VkPhysicalDeviceSurfaceInfo2KHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "surface" VkPhysicalDeviceSurfaceInfo2KHR =
-             #{offset VkPhysicalDeviceSurfaceInfo2KHR, surface}
-        type FieldIsArray "surface" VkPhysicalDeviceSurfaceInfo2KHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSurfaceInfo2KHR, surface}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "surface" VkPhysicalDeviceSurfaceInfo2KHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSurfaceInfo2KHR, surface})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, surface}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "surface" VkPhysicalDeviceSurfaceInfo2KHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, surface}
-
-instance Show VkPhysicalDeviceSurfaceInfo2KHR where
-        showsPrec d x
-          = showString "VkPhysicalDeviceSurfaceInfo2KHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "surface = " .
-                            showsPrec d (getField @"surface" x) . showChar '}'
-
--- | > typedef struct VkPhysicalDeviceVariablePointerFeatures {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkBool32                         variablePointersStorageBuffer;
---   >     VkBool32                         variablePointers;
---   > } VkPhysicalDeviceVariablePointerFeatures;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceVariablePointerFeatures VkPhysicalDeviceVariablePointerFeatures registry at www.khronos.org>
-data VkPhysicalDeviceVariablePointerFeatures = VkPhysicalDeviceVariablePointerFeatures## Addr##
-                                                                                        ByteArray##
-
-instance Eq VkPhysicalDeviceVariablePointerFeatures where
-        (VkPhysicalDeviceVariablePointerFeatures## a _) ==
-          x@(VkPhysicalDeviceVariablePointerFeatures## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceVariablePointerFeatures where
-        (VkPhysicalDeviceVariablePointerFeatures## a _) `compare`
-          x@(VkPhysicalDeviceVariablePointerFeatures## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceVariablePointerFeatures where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceVariablePointerFeatures}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceVariablePointerFeatures}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceVariablePointerFeatures
-         where
-        unsafeAddr (VkPhysicalDeviceVariablePointerFeatures## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceVariablePointerFeatures## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceVariablePointerFeatures##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceVariablePointerFeatures
-         where
-        type StructFields VkPhysicalDeviceVariablePointerFeatures =
-             '["sType", "pNext", "variablePointersStorageBuffer", -- ' closing tick for hsc2hs
-               "variablePointers"]
-        type CUnionType VkPhysicalDeviceVariablePointerFeatures = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceVariablePointerFeatures = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceVariablePointerFeatures =
-             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceVariablePointerFeatures where
-        type FieldType "sType" VkPhysicalDeviceVariablePointerFeatures =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceVariablePointerFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceVariablePointerFeatures =
-             #{offset VkPhysicalDeviceVariablePointerFeatures, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceVariablePointerFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceVariablePointerFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceVariablePointerFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVariablePointerFeatures, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceVariablePointerFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceVariablePointerFeatures where
-        type FieldType "pNext" VkPhysicalDeviceVariablePointerFeatures =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceVariablePointerFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceVariablePointerFeatures =
-             #{offset VkPhysicalDeviceVariablePointerFeatures, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceVariablePointerFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceVariablePointerFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceVariablePointerFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVariablePointerFeatures, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceVariablePointerFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "variablePointersStorageBuffer"
-           VkPhysicalDeviceVariablePointerFeatures
-         where
-        type FieldType "variablePointersStorageBuffer"
-               VkPhysicalDeviceVariablePointerFeatures
-             = VkBool32
-        type FieldOptional "variablePointersStorageBuffer"
-               VkPhysicalDeviceVariablePointerFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "variablePointersStorageBuffer"
-               VkPhysicalDeviceVariablePointerFeatures
-             =
-             #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointersStorageBuffer}
-        type FieldIsArray "variablePointersStorageBuffer"
-               VkPhysicalDeviceVariablePointerFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointersStorageBuffer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "variablePointersStorageBuffer"
-           VkPhysicalDeviceVariablePointerFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointersStorageBuffer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointersStorageBuffer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "variablePointersStorageBuffer"
-           VkPhysicalDeviceVariablePointerFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointersStorageBuffer}
-
-instance {-# OVERLAPPING #-}
-         HasField "variablePointers" VkPhysicalDeviceVariablePointerFeatures
-         where
-        type FieldType "variablePointers"
-               VkPhysicalDeviceVariablePointerFeatures
-             = VkBool32
-        type FieldOptional "variablePointers"
-               VkPhysicalDeviceVariablePointerFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "variablePointers"
-               VkPhysicalDeviceVariablePointerFeatures
-             =
-             #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointers}
-        type FieldIsArray "variablePointers"
-               VkPhysicalDeviceVariablePointerFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "variablePointers"
-           VkPhysicalDeviceVariablePointerFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "variablePointers"
-           VkPhysicalDeviceVariablePointerFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointers}
-
-instance Show VkPhysicalDeviceVariablePointerFeatures where
-        showsPrec d x
-          = showString "VkPhysicalDeviceVariablePointerFeatures {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "variablePointersStorageBuffer = " .
-                            showsPrec d (getField @"variablePointersStorageBuffer" x) .
-                              showString ", " .
-                                showString "variablePointers = " .
-                                  showsPrec d (getField @"variablePointers" x) . showChar '}'
-
--- | Alias for `VkPhysicalDeviceVariablePointerFeatures`
-type VkPhysicalDeviceVariablePointerFeaturesKHR =
-     VkPhysicalDeviceVariablePointerFeatures
-
--- | > typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
---   >     VkStructureType sType;
---   >     void*                  pNext;
---   >     uint32_t               maxVertexAttribDivisor;
---   > } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT registry at www.khronos.org>
-data VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT = VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## Addr##
-                                                                                                                ByteArray##
-
-instance Eq VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-         where
-        (VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## a _) ==
-          x@(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-         where
-        (VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## a _)
-          `compare`
-          x@(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable
-           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-         where
-        unsafeAddr
-          (VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
+       (VkPhysicalDevice16BitStorageFeatures,
+        VkPhysicalDevice16BitStorageFeatures', -- ' closing tick for hsc2hs
+        VkPhysicalDevice16BitStorageFeaturesKHR,
+        VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT,
+        VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT,
+        VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceConservativeRasterizationPropertiesEXT,
+        VkPhysicalDeviceConservativeRasterizationPropertiesEXT', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceDescriptorIndexingFeaturesEXT,
+        VkPhysicalDeviceDescriptorIndexingFeaturesEXT', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceDescriptorIndexingPropertiesEXT,
+        VkPhysicalDeviceDescriptorIndexingPropertiesEXT', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceDiscardRectanglePropertiesEXT,
+        VkPhysicalDeviceDiscardRectanglePropertiesEXT', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceExternalBufferInfo,
+        VkPhysicalDeviceExternalBufferInfo', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceExternalBufferInfoKHR,
+        VkPhysicalDeviceExternalFenceInfo,
+        VkPhysicalDeviceExternalFenceInfo', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceExternalFenceInfoKHR,
+        VkPhysicalDeviceExternalImageFormatInfo,
+        VkPhysicalDeviceExternalImageFormatInfo', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceExternalImageFormatInfoKHR,
+        VkPhysicalDeviceExternalMemoryHostPropertiesEXT,
+        VkPhysicalDeviceExternalMemoryHostPropertiesEXT', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceExternalSemaphoreInfo,
+        VkPhysicalDeviceExternalSemaphoreInfo', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceExternalSemaphoreInfoKHR,
+        VkPhysicalDeviceFeatures2, VkPhysicalDeviceFeatures2', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceFeatures2KHR, VkPhysicalDeviceGroupProperties,
+        VkPhysicalDeviceGroupProperties', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceGroupPropertiesKHR, VkPhysicalDeviceIDProperties,
+        VkPhysicalDeviceIDProperties', VkPhysicalDeviceIDPropertiesKHR, -- ' closing tick for hsc2hs
+        VkPhysicalDeviceImageFormatInfo2,
+        VkPhysicalDeviceImageFormatInfo2', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceImageFormatInfo2KHR, VkPhysicalDeviceLimits,
+        VkPhysicalDeviceLimits', VkPhysicalDeviceMaintenance3Properties, -- ' closing tick for hsc2hs
+        VkPhysicalDeviceMaintenance3Properties', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceMaintenance3PropertiesKHR,
+        VkPhysicalDeviceMemoryProperties,
+        VkPhysicalDeviceMemoryProperties', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceMemoryProperties2,
+        VkPhysicalDeviceMemoryProperties2', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceMemoryProperties2KHR,
+        VkPhysicalDeviceMultiviewFeatures,
+        VkPhysicalDeviceMultiviewFeatures', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceMultiviewFeaturesKHR,
+        VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX,
+        VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceMultiviewProperties,
+        VkPhysicalDeviceMultiviewProperties', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceMultiviewPropertiesKHR,
+        VkPhysicalDevicePointClippingProperties,
+        VkPhysicalDevicePointClippingProperties', -- ' closing tick for hsc2hs
+        VkPhysicalDevicePointClippingPropertiesKHR,
+        VkPhysicalDeviceProperties, VkPhysicalDeviceProperties', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceProperties2, VkPhysicalDeviceProperties2', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceProperties2KHR,
+        VkPhysicalDeviceProtectedMemoryFeatures,
+        VkPhysicalDeviceProtectedMemoryFeatures', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceProtectedMemoryProperties,
+        VkPhysicalDeviceProtectedMemoryProperties', -- ' closing tick for hsc2hs
+        VkPhysicalDevicePushDescriptorPropertiesKHR,
+        VkPhysicalDevicePushDescriptorPropertiesKHR', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceSampleLocationsPropertiesEXT,
+        VkPhysicalDeviceSampleLocationsPropertiesEXT', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT,
+        VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceSamplerYcbcrConversionFeatures,
+        VkPhysicalDeviceSamplerYcbcrConversionFeatures', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR,
+        VkPhysicalDeviceShaderCorePropertiesAMD,
+        VkPhysicalDeviceShaderCorePropertiesAMD', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceShaderDrawParameterFeatures,
+        VkPhysicalDeviceShaderDrawParameterFeatures', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceSparseImageFormatInfo2,
+        VkPhysicalDeviceSparseImageFormatInfo2', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceSparseImageFormatInfo2KHR,
+        VkPhysicalDeviceSparseProperties,
+        VkPhysicalDeviceSparseProperties', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceSubgroupProperties,
+        VkPhysicalDeviceSubgroupProperties', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceSurfaceInfo2KHR, VkPhysicalDeviceSurfaceInfo2KHR', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceVariablePointerFeatures,
+        VkPhysicalDeviceVariablePointerFeatures', -- ' closing tick for hsc2hs
+        VkPhysicalDeviceVariablePointerFeaturesKHR,
+        VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT,
+        VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT') -- ' closing tick for hsc2hs
+       where
+import Foreign.Storable                                    (Storable (..))
+import Graphics.Vulkan.Constants                           (VK_LUID_SIZE,
+                                                            pattern VK_LUID_SIZE,
+                                                            VK_MAX_DEVICE_GROUP_SIZE,
+                                                            pattern VK_MAX_DEVICE_GROUP_SIZE,
+                                                            VK_MAX_MEMORY_HEAPS,
+                                                            pattern VK_MAX_MEMORY_HEAPS,
+                                                            VK_MAX_MEMORY_TYPES,
+                                                            pattern VK_MAX_MEMORY_TYPES,
+                                                            VK_MAX_PHYSICAL_DEVICE_NAME_SIZE,
+                                                            pattern VK_MAX_PHYSICAL_DEVICE_NAME_SIZE,
+                                                            VK_UUID_SIZE,
+                                                            pattern VK_UUID_SIZE)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes                     (VkBool32,
+                                                            VkDeviceSize)
+import Graphics.Vulkan.Types.Enum.Buffer                   (VkBufferCreateFlags,
+                                                            VkBufferUsageFlags)
+import Graphics.Vulkan.Types.Enum.External                 (VkExternalFenceHandleTypeFlagBits,
+                                                            VkExternalMemoryHandleTypeFlagBits,
+                                                            VkExternalSemaphoreHandleTypeFlagBits)
+import Graphics.Vulkan.Types.Enum.Format                   (VkFormat)
+import Graphics.Vulkan.Types.Enum.Image                    (VkImageCreateFlags,
+                                                            VkImageTiling,
+                                                            VkImageType,
+                                                            VkImageUsageFlags)
+import Graphics.Vulkan.Types.Enum.PhysicalDeviceType       (VkPhysicalDeviceType)
+import Graphics.Vulkan.Types.Enum.PointClippingBehavior    (VkPointClippingBehavior)
+import Graphics.Vulkan.Types.Enum.SampleCountFlags         (VkSampleCountFlagBits,
+                                                            VkSampleCountFlags)
+import Graphics.Vulkan.Types.Enum.Shader                   (VkShaderStageFlags)
+import Graphics.Vulkan.Types.Enum.StructureType            (VkStructureType)
+import Graphics.Vulkan.Types.Enum.SubgroupFeatureFlags     (VkSubgroupFeatureFlags)
+import Graphics.Vulkan.Types.Handles                       (VkPhysicalDevice,
+                                                            VkSurfaceKHR)
+import Graphics.Vulkan.Types.Struct.Device                 (VkDeviceCreateInfo)
+import Graphics.Vulkan.Types.Struct.Extent                 (VkExtent2D)
+import Graphics.Vulkan.Types.Struct.Memory                 (VkMemoryHeap,
+                                                            VkMemoryType)
+import Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures (VkPhysicalDeviceFeatures)
+import System.IO.Unsafe                                    (unsafeDupablePerformIO)
+
+-- | > typedef struct VkPhysicalDevice16BitStorageFeatures {
+--   >     VkStructureType sType;
+--   >     void*      pNext;
+--   >     VkBool32                         storageBuffer16BitAccess;
+--   >     VkBool32                         uniformAndStorageBuffer16BitAccess;
+--   >     VkBool32                         storagePushConstant16;
+--   >     VkBool32                         storageInputOutput16;
+--   > } VkPhysicalDevice16BitStorageFeatures;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeatures registry at www.khronos.org>
+type VkPhysicalDevice16BitStorageFeatures =
+     VulkanStruct VkPhysicalDevice16BitStorageFeatures' -- ' closing tick for hsc2hs
+
+data VkPhysicalDevice16BitStorageFeatures' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDevice16BitStorageFeatures where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDevice16BitStorageFeatures where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDevice16BitStorageFeatures where
+        sizeOf ~_
+          = #{size VkPhysicalDevice16BitStorageFeatures}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDevice16BitStorageFeatures}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDevice16BitStorageFeatures where
+        type StructFields VkPhysicalDevice16BitStorageFeatures =
+             '["sType", "pNext", "storageBuffer16BitAccess", -- ' closing tick for hsc2hs
+               "uniformAndStorageBuffer16BitAccess", "storagePushConstant16",
+               "storageInputOutput16"]
+        type CUnionType VkPhysicalDevice16BitStorageFeatures = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDevice16BitStorageFeatures = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDevice16BitStorageFeatures =
+             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDevice16BitStorageFeatures where
+        type FieldType "sType" VkPhysicalDevice16BitStorageFeatures =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDevice16BitStorageFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDevice16BitStorageFeatures =
+             #{offset VkPhysicalDevice16BitStorageFeatures, sType}
+        type FieldIsArray "sType" VkPhysicalDevice16BitStorageFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevice16BitStorageFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDevice16BitStorageFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDevice16BitStorageFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDevice16BitStorageFeatures where
+        type FieldType "pNext" VkPhysicalDevice16BitStorageFeatures =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDevice16BitStorageFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDevice16BitStorageFeatures =
+             #{offset VkPhysicalDevice16BitStorageFeatures, pNext}
+        type FieldIsArray "pNext" VkPhysicalDevice16BitStorageFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevice16BitStorageFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDevice16BitStorageFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDevice16BitStorageFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "storageBuffer16BitAccess"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        type FieldType "storageBuffer16BitAccess"
+               VkPhysicalDevice16BitStorageFeatures
+             = VkBool32
+        type FieldOptional "storageBuffer16BitAccess"
+               VkPhysicalDevice16BitStorageFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "storageBuffer16BitAccess"
+               VkPhysicalDevice16BitStorageFeatures
+             =
+             #{offset VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess}
+        type FieldIsArray "storageBuffer16BitAccess"
+               VkPhysicalDevice16BitStorageFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "storageBuffer16BitAccess"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "storageBuffer16BitAccess"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess}
+
+instance {-# OVERLAPPING #-}
+         HasField "uniformAndStorageBuffer16BitAccess"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        type FieldType "uniformAndStorageBuffer16BitAccess"
+               VkPhysicalDevice16BitStorageFeatures
+             = VkBool32
+        type FieldOptional "uniformAndStorageBuffer16BitAccess"
+               VkPhysicalDevice16BitStorageFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "uniformAndStorageBuffer16BitAccess"
+               VkPhysicalDevice16BitStorageFeatures
+             =
+             #{offset VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess}
+        type FieldIsArray "uniformAndStorageBuffer16BitAccess"
+               VkPhysicalDevice16BitStorageFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "uniformAndStorageBuffer16BitAccess"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "uniformAndStorageBuffer16BitAccess"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess}
+
+instance {-# OVERLAPPING #-}
+         HasField "storagePushConstant16"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        type FieldType "storagePushConstant16"
+               VkPhysicalDevice16BitStorageFeatures
+             = VkBool32
+        type FieldOptional "storagePushConstant16"
+               VkPhysicalDevice16BitStorageFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "storagePushConstant16"
+               VkPhysicalDevice16BitStorageFeatures
+             =
+             #{offset VkPhysicalDevice16BitStorageFeatures, storagePushConstant16}
+        type FieldIsArray "storagePushConstant16"
+               VkPhysicalDevice16BitStorageFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevice16BitStorageFeatures, storagePushConstant16}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "storagePushConstant16"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, storagePushConstant16})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storagePushConstant16}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "storagePushConstant16"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storagePushConstant16}
+
+instance {-# OVERLAPPING #-}
+         HasField "storageInputOutput16"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        type FieldType "storageInputOutput16"
+               VkPhysicalDevice16BitStorageFeatures
+             = VkBool32
+        type FieldOptional "storageInputOutput16"
+               VkPhysicalDevice16BitStorageFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "storageInputOutput16"
+               VkPhysicalDevice16BitStorageFeatures
+             =
+             #{offset VkPhysicalDevice16BitStorageFeatures, storageInputOutput16}
+        type FieldIsArray "storageInputOutput16"
+               VkPhysicalDevice16BitStorageFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevice16BitStorageFeatures, storageInputOutput16}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "storageInputOutput16"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, storageInputOutput16})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storageInputOutput16}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "storageInputOutput16"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storageInputOutput16}
+
+instance Show VkPhysicalDevice16BitStorageFeatures where
+        showsPrec d x
+          = showString "VkPhysicalDevice16BitStorageFeatures {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "storageBuffer16BitAccess = " .
+                            showsPrec d (getField @"storageBuffer16BitAccess" x) .
+                              showString ", " .
+                                showString "uniformAndStorageBuffer16BitAccess = " .
+                                  showsPrec d (getField @"uniformAndStorageBuffer16BitAccess" x) .
+                                    showString ", " .
+                                      showString "storagePushConstant16 = " .
+                                        showsPrec d (getField @"storagePushConstant16" x) .
+                                          showString ", " .
+                                            showString "storageInputOutput16 = " .
+                                              showsPrec d (getField @"storageInputOutput16" x) .
+                                                showChar '}'
+
+-- | Alias for `VkPhysicalDevice16BitStorageFeatures`
+type VkPhysicalDevice16BitStorageFeaturesKHR =
+     VkPhysicalDevice16BitStorageFeatures
+
+-- | > typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkBool32                         advancedBlendCoherentOperations;
+--   > } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT registry at www.khronos.org>
+type VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT =
+     VulkanStruct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        type StructFields VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = '["sType", "pNext", "advancedBlendCoherentOperations"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type StructExtends
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = '[VkPhysicalDeviceFeatures2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType"
+           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext"
+           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "advancedBlendCoherentOperations"
+           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        type FieldType "advancedBlendCoherentOperations"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = VkBool32
+        type FieldOptional "advancedBlendCoherentOperations"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "advancedBlendCoherentOperations"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations}
+        type FieldIsArray "advancedBlendCoherentOperations"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "advancedBlendCoherentOperations"
+           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "advancedBlendCoherentOperations"
+           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations}
+
+instance Show VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        showsPrec d x
+          = showString "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {"
+              .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "advancedBlendCoherentOperations = " .
+                            showsPrec d (getField @"advancedBlendCoherentOperations" x) .
+                              showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     uint32_t                         advancedBlendMaxColorAttachments;
+--   >     VkBool32                         advancedBlendIndependentBlend;
+--   >     VkBool32                         advancedBlendNonPremultipliedSrcColor;
+--   >     VkBool32                         advancedBlendNonPremultipliedDstColor;
+--   >     VkBool32                         advancedBlendCorrelatedOverlap;
+--   >     VkBool32                         advancedBlendAllOperations;
+--   > } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT registry at www.khronos.org>
+type VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT =
+     VulkanStruct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        type StructFields
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             =
+             '["sType", "pNext", "advancedBlendMaxColorAttachments", -- ' closing tick for hsc2hs
+               "advancedBlendIndependentBlend",
+               "advancedBlendNonPremultipliedSrcColor",
+               "advancedBlendNonPremultipliedDstColor",
+               "advancedBlendCorrelatedOverlap", "advancedBlendAllOperations"]
+        type CUnionType VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'True -- ' closing tick for hsc2hs
+        type StructExtends
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "advancedBlendMaxColorAttachments"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        type FieldType "advancedBlendMaxColorAttachments"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = Word32
+        type FieldOptional "advancedBlendMaxColorAttachments"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "advancedBlendMaxColorAttachments"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendMaxColorAttachments}
+        type FieldIsArray "advancedBlendMaxColorAttachments"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendMaxColorAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "advancedBlendMaxColorAttachments"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendMaxColorAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendMaxColorAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "advancedBlendMaxColorAttachments"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendMaxColorAttachments}
+
+instance {-# OVERLAPPING #-}
+         HasField "advancedBlendIndependentBlend"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        type FieldType "advancedBlendIndependentBlend"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = VkBool32
+        type FieldOptional "advancedBlendIndependentBlend"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "advancedBlendIndependentBlend"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendIndependentBlend}
+        type FieldIsArray "advancedBlendIndependentBlend"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendIndependentBlend}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "advancedBlendIndependentBlend"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendIndependentBlend})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendIndependentBlend}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "advancedBlendIndependentBlend"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendIndependentBlend}
+
+instance {-# OVERLAPPING #-}
+         HasField "advancedBlendNonPremultipliedSrcColor"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        type FieldType "advancedBlendNonPremultipliedSrcColor"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = VkBool32
+        type FieldOptional "advancedBlendNonPremultipliedSrcColor"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "advancedBlendNonPremultipliedSrcColor"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedSrcColor}
+        type FieldIsArray "advancedBlendNonPremultipliedSrcColor"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedSrcColor}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "advancedBlendNonPremultipliedSrcColor"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedSrcColor})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedSrcColor}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "advancedBlendNonPremultipliedSrcColor"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedSrcColor}
+
+instance {-# OVERLAPPING #-}
+         HasField "advancedBlendNonPremultipliedDstColor"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        type FieldType "advancedBlendNonPremultipliedDstColor"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = VkBool32
+        type FieldOptional "advancedBlendNonPremultipliedDstColor"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "advancedBlendNonPremultipliedDstColor"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedDstColor}
+        type FieldIsArray "advancedBlendNonPremultipliedDstColor"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedDstColor}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "advancedBlendNonPremultipliedDstColor"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedDstColor})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedDstColor}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "advancedBlendNonPremultipliedDstColor"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedDstColor}
+
+instance {-# OVERLAPPING #-}
+         HasField "advancedBlendCorrelatedOverlap"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        type FieldType "advancedBlendCorrelatedOverlap"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = VkBool32
+        type FieldOptional "advancedBlendCorrelatedOverlap"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "advancedBlendCorrelatedOverlap"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendCorrelatedOverlap}
+        type FieldIsArray "advancedBlendCorrelatedOverlap"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendCorrelatedOverlap}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "advancedBlendCorrelatedOverlap"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendCorrelatedOverlap})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendCorrelatedOverlap}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "advancedBlendCorrelatedOverlap"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendCorrelatedOverlap}
+
+instance {-# OVERLAPPING #-}
+         HasField "advancedBlendAllOperations"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        type FieldType "advancedBlendAllOperations"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = VkBool32
+        type FieldOptional "advancedBlendAllOperations"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "advancedBlendAllOperations"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendAllOperations}
+        type FieldIsArray "advancedBlendAllOperations"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendAllOperations}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "advancedBlendAllOperations"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendAllOperations})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendAllOperations}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "advancedBlendAllOperations"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendAllOperations}
+
+instance Show VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        showsPrec d x
+          = showString
+              "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {"
+              .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "advancedBlendMaxColorAttachments = " .
+                            showsPrec d (getField @"advancedBlendMaxColorAttachments" x) .
+                              showString ", " .
+                                showString "advancedBlendIndependentBlend = " .
+                                  showsPrec d (getField @"advancedBlendIndependentBlend" x) .
+                                    showString ", " .
+                                      showString "advancedBlendNonPremultipliedSrcColor = " .
+                                        showsPrec d
+                                          (getField @"advancedBlendNonPremultipliedSrcColor" x)
+                                          .
+                                          showString ", " .
+                                            showString "advancedBlendNonPremultipliedDstColor = " .
+                                              showsPrec d
+                                                (getField @"advancedBlendNonPremultipliedDstColor"
+                                                   x)
+                                                .
+                                                showString ", " .
+                                                  showString "advancedBlendCorrelatedOverlap = " .
+                                                    showsPrec d
+                                                      (getField @"advancedBlendCorrelatedOverlap" x)
+                                                      .
+                                                      showString ", " .
+                                                        showString "advancedBlendAllOperations = " .
+                                                          showsPrec d
+                                                            (getField @"advancedBlendAllOperations"
+                                                               x)
+                                                            . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
+--   >     VkStructureType sType;
+--   >     void*                  pNext;
+--   >     float                  primitiveOverestimationSize;
+--   >     float                  maxExtraPrimitiveOverestimationSize;
+--   >     float                  extraPrimitiveOverestimationSizeGranularity;
+--   >     VkBool32               primitiveUnderestimation;
+--   >     VkBool32               conservativePointAndLineRasterization;
+--   >     VkBool32               degenerateTrianglesRasterized;
+--   >     VkBool32               degenerateLinesRasterized;
+--   >     VkBool32               fullyCoveredFragmentShaderInputVariable;
+--   >     VkBool32               conservativeRasterizationPostDepthCoverage;
+--   > } VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceConservativeRasterizationPropertiesEXT VkPhysicalDeviceConservativeRasterizationPropertiesEXT registry at www.khronos.org>
+type VkPhysicalDeviceConservativeRasterizationPropertiesEXT =
+     VulkanStruct
+       VkPhysicalDeviceConservativeRasterizationPropertiesEXT' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceConservativeRasterizationPropertiesEXT' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceConservativeRasterizationPropertiesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceConservativeRasterizationPropertiesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type StructFields
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             '["sType", "pNext", "primitiveOverestimationSize", -- ' closing tick for hsc2hs
+               "maxExtraPrimitiveOverestimationSize",
+               "extraPrimitiveOverestimationSizeGranularity",
+               "primitiveUnderestimation",
+               "conservativePointAndLineRasterization",
+               "degenerateTrianglesRasterized", "degenerateLinesRasterized",
+               "fullyCoveredFragmentShaderInputVariable",
+               "conservativeRasterizationPostDepthCoverage"]
+        type CUnionType
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type StructExtends
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "primitiveOverestimationSize"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "primitiveOverestimationSize"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = #{type float}
+        type FieldOptional "primitiveOverestimationSize"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "primitiveOverestimationSize"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveOverestimationSize}
+        type FieldIsArray "primitiveOverestimationSize"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveOverestimationSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "primitiveOverestimationSize"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveOverestimationSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveOverestimationSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "primitiveOverestimationSize"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveOverestimationSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxExtraPrimitiveOverestimationSize"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "maxExtraPrimitiveOverestimationSize"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = #{type float}
+        type FieldOptional "maxExtraPrimitiveOverestimationSize"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxExtraPrimitiveOverestimationSize"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, maxExtraPrimitiveOverestimationSize}
+        type FieldIsArray "maxExtraPrimitiveOverestimationSize"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, maxExtraPrimitiveOverestimationSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxExtraPrimitiveOverestimationSize"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, maxExtraPrimitiveOverestimationSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, maxExtraPrimitiveOverestimationSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxExtraPrimitiveOverestimationSize"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, maxExtraPrimitiveOverestimationSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "extraPrimitiveOverestimationSizeGranularity"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "extraPrimitiveOverestimationSizeGranularity"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = #{type float}
+        type FieldOptional "extraPrimitiveOverestimationSizeGranularity"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "extraPrimitiveOverestimationSizeGranularity"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, extraPrimitiveOverestimationSizeGranularity}
+        type FieldIsArray "extraPrimitiveOverestimationSizeGranularity"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, extraPrimitiveOverestimationSizeGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "extraPrimitiveOverestimationSizeGranularity"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, extraPrimitiveOverestimationSizeGranularity})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, extraPrimitiveOverestimationSizeGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "extraPrimitiveOverestimationSizeGranularity"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, extraPrimitiveOverestimationSizeGranularity}
+
+instance {-# OVERLAPPING #-}
+         HasField "primitiveUnderestimation"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "primitiveUnderestimation"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = VkBool32
+        type FieldOptional "primitiveUnderestimation"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "primitiveUnderestimation"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveUnderestimation}
+        type FieldIsArray "primitiveUnderestimation"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveUnderestimation}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "primitiveUnderestimation"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveUnderestimation})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveUnderestimation}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "primitiveUnderestimation"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveUnderestimation}
+
+instance {-# OVERLAPPING #-}
+         HasField "conservativePointAndLineRasterization"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "conservativePointAndLineRasterization"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = VkBool32
+        type FieldOptional "conservativePointAndLineRasterization"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "conservativePointAndLineRasterization"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativePointAndLineRasterization}
+        type FieldIsArray "conservativePointAndLineRasterization"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativePointAndLineRasterization}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "conservativePointAndLineRasterization"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativePointAndLineRasterization})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativePointAndLineRasterization}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "conservativePointAndLineRasterization"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativePointAndLineRasterization}
+
+instance {-# OVERLAPPING #-}
+         HasField "degenerateTrianglesRasterized"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "degenerateTrianglesRasterized"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = VkBool32
+        type FieldOptional "degenerateTrianglesRasterized"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "degenerateTrianglesRasterized"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateTrianglesRasterized}
+        type FieldIsArray "degenerateTrianglesRasterized"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateTrianglesRasterized}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "degenerateTrianglesRasterized"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateTrianglesRasterized})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateTrianglesRasterized}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "degenerateTrianglesRasterized"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateTrianglesRasterized}
+
+instance {-# OVERLAPPING #-}
+         HasField "degenerateLinesRasterized"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "degenerateLinesRasterized"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = VkBool32
+        type FieldOptional "degenerateLinesRasterized"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "degenerateLinesRasterized"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateLinesRasterized}
+        type FieldIsArray "degenerateLinesRasterized"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateLinesRasterized}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "degenerateLinesRasterized"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateLinesRasterized})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateLinesRasterized}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "degenerateLinesRasterized"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateLinesRasterized}
+
+instance {-# OVERLAPPING #-}
+         HasField "fullyCoveredFragmentShaderInputVariable"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "fullyCoveredFragmentShaderInputVariable"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = VkBool32
+        type FieldOptional "fullyCoveredFragmentShaderInputVariable"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "fullyCoveredFragmentShaderInputVariable"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, fullyCoveredFragmentShaderInputVariable}
+        type FieldIsArray "fullyCoveredFragmentShaderInputVariable"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, fullyCoveredFragmentShaderInputVariable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "fullyCoveredFragmentShaderInputVariable"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, fullyCoveredFragmentShaderInputVariable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, fullyCoveredFragmentShaderInputVariable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "fullyCoveredFragmentShaderInputVariable"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, fullyCoveredFragmentShaderInputVariable}
+
+instance {-# OVERLAPPING #-}
+         HasField "conservativeRasterizationPostDepthCoverage"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "conservativeRasterizationPostDepthCoverage"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = VkBool32
+        type FieldOptional "conservativeRasterizationPostDepthCoverage"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "conservativeRasterizationPostDepthCoverage"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativeRasterizationPostDepthCoverage}
+        type FieldIsArray "conservativeRasterizationPostDepthCoverage"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativeRasterizationPostDepthCoverage}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "conservativeRasterizationPostDepthCoverage"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativeRasterizationPostDepthCoverage})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativeRasterizationPostDepthCoverage}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "conservativeRasterizationPostDepthCoverage"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativeRasterizationPostDepthCoverage}
+
+instance Show
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        showsPrec d x
+          = showString
+              "VkPhysicalDeviceConservativeRasterizationPropertiesEXT {"
+              .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "primitiveOverestimationSize = " .
+                            showsPrec d (getField @"primitiveOverestimationSize" x) .
+                              showString ", " .
+                                showString "maxExtraPrimitiveOverestimationSize = " .
+                                  showsPrec d (getField @"maxExtraPrimitiveOverestimationSize" x) .
+                                    showString ", " .
+                                      showString "extraPrimitiveOverestimationSizeGranularity = " .
+                                        showsPrec d
+                                          (getField @"extraPrimitiveOverestimationSizeGranularity"
+                                             x)
+                                          .
+                                          showString ", " .
+                                            showString "primitiveUnderestimation = " .
+                                              showsPrec d (getField @"primitiveUnderestimation" x) .
+                                                showString ", " .
+                                                  showString
+                                                    "conservativePointAndLineRasterization = "
+                                                    .
+                                                    showsPrec d
+                                                      (getField
+                                                         @"conservativePointAndLineRasterization"
+                                                         x)
+                                                      .
+                                                      showString ", " .
+                                                        showString
+                                                          "degenerateTrianglesRasterized = "
+                                                          .
+                                                          showsPrec d
+                                                            (getField
+                                                               @"degenerateTrianglesRasterized"
+                                                               x)
+                                                            .
+                                                            showString ", " .
+                                                              showString
+                                                                "degenerateLinesRasterized = "
+                                                                .
+                                                                showsPrec d
+                                                                  (getField
+                                                                     @"degenerateLinesRasterized"
+                                                                     x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString
+                                                                      "fullyCoveredFragmentShaderInputVariable = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"fullyCoveredFragmentShaderInputVariable"
+                                                                           x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "conservativeRasterizationPostDepthCoverage = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"conservativeRasterizationPostDepthCoverage"
+                                                                                 x)
+                                                                              . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkBool32               shaderInputAttachmentArrayDynamicIndexing;
+--   >     VkBool32               shaderUniformTexelBufferArrayDynamicIndexing;
+--   >     VkBool32               shaderStorageTexelBufferArrayDynamicIndexing;
+--   >     VkBool32               shaderUniformBufferArrayNonUniformIndexing;
+--   >     VkBool32               shaderSampledImageArrayNonUniformIndexing;
+--   >     VkBool32               shaderStorageBufferArrayNonUniformIndexing;
+--   >     VkBool32               shaderStorageImageArrayNonUniformIndexing;
+--   >     VkBool32               shaderInputAttachmentArrayNonUniformIndexing;
+--   >     VkBool32               shaderUniformTexelBufferArrayNonUniformIndexing;
+--   >     VkBool32               shaderStorageTexelBufferArrayNonUniformIndexing;
+--   >     VkBool32               descriptorBindingUniformBufferUpdateAfterBind;
+--   >     VkBool32               descriptorBindingSampledImageUpdateAfterBind;
+--   >     VkBool32               descriptorBindingStorageImageUpdateAfterBind;
+--   >     VkBool32               descriptorBindingStorageBufferUpdateAfterBind;
+--   >     VkBool32               descriptorBindingUniformTexelBufferUpdateAfterBind;
+--   >     VkBool32               descriptorBindingStorageTexelBufferUpdateAfterBind;
+--   >     VkBool32               descriptorBindingUpdateUnusedWhilePending;
+--   >     VkBool32               descriptorBindingPartiallyBound;
+--   >     VkBool32               descriptorBindingVariableDescriptorCount;
+--   >     VkBool32               runtimeDescriptorArray;
+--   > } VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceDescriptorIndexingFeaturesEXT VkPhysicalDeviceDescriptorIndexingFeaturesEXT registry at www.khronos.org>
+type VkPhysicalDeviceDescriptorIndexingFeaturesEXT =
+     VulkanStruct VkPhysicalDeviceDescriptorIndexingFeaturesEXT' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceDescriptorIndexingFeaturesEXT' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceDescriptorIndexingFeaturesEXT where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceDescriptorIndexingFeaturesEXT where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceDescriptorIndexingFeaturesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceDescriptorIndexingFeaturesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type StructFields VkPhysicalDeviceDescriptorIndexingFeaturesEXT =
+             '["sType", "pNext", "shaderInputAttachmentArrayDynamicIndexing", -- ' closing tick for hsc2hs
+               "shaderUniformTexelBufferArrayDynamicIndexing",
+               "shaderStorageTexelBufferArrayDynamicIndexing",
+               "shaderUniformBufferArrayNonUniformIndexing",
+               "shaderSampledImageArrayNonUniformIndexing",
+               "shaderStorageBufferArrayNonUniformIndexing",
+               "shaderStorageImageArrayNonUniformIndexing",
+               "shaderInputAttachmentArrayNonUniformIndexing",
+               "shaderUniformTexelBufferArrayNonUniformIndexing",
+               "shaderStorageTexelBufferArrayNonUniformIndexing",
+               "descriptorBindingUniformBufferUpdateAfterBind",
+               "descriptorBindingSampledImageUpdateAfterBind",
+               "descriptorBindingStorageImageUpdateAfterBind",
+               "descriptorBindingStorageBufferUpdateAfterBind",
+               "descriptorBindingUniformTexelBufferUpdateAfterBind",
+               "descriptorBindingStorageTexelBufferUpdateAfterBind",
+               "descriptorBindingUpdateUnusedWhilePending",
+               "descriptorBindingPartiallyBound",
+               "descriptorBindingVariableDescriptorCount",
+               "runtimeDescriptorArray"]
+        type CUnionType VkPhysicalDeviceDescriptorIndexingFeaturesEXT =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceDescriptorIndexingFeaturesEXT =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceDescriptorIndexingFeaturesEXT =
+             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderInputAttachmentArrayDynamicIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "shaderInputAttachmentArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "shaderInputAttachmentArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderInputAttachmentArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayDynamicIndexing}
+        type FieldIsArray "shaderInputAttachmentArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderInputAttachmentArrayDynamicIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayDynamicIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderInputAttachmentArrayDynamicIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderUniformTexelBufferArrayDynamicIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "shaderUniformTexelBufferArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "shaderUniformTexelBufferArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderUniformTexelBufferArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayDynamicIndexing}
+        type FieldIsArray "shaderUniformTexelBufferArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderUniformTexelBufferArrayDynamicIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayDynamicIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderUniformTexelBufferArrayDynamicIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderStorageTexelBufferArrayDynamicIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "shaderStorageTexelBufferArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "shaderStorageTexelBufferArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderStorageTexelBufferArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayDynamicIndexing}
+        type FieldIsArray "shaderStorageTexelBufferArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderStorageTexelBufferArrayDynamicIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayDynamicIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderStorageTexelBufferArrayDynamicIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderUniformBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "shaderUniformBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "shaderUniformBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderUniformBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformBufferArrayNonUniformIndexing}
+        type FieldIsArray "shaderUniformBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderUniformBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformBufferArrayNonUniformIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderUniformBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderSampledImageArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "shaderSampledImageArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "shaderSampledImageArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderSampledImageArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderSampledImageArrayNonUniformIndexing}
+        type FieldIsArray "shaderSampledImageArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderSampledImageArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderSampledImageArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderSampledImageArrayNonUniformIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderSampledImageArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderSampledImageArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderSampledImageArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderStorageBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "shaderStorageBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "shaderStorageBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderStorageBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageBufferArrayNonUniformIndexing}
+        type FieldIsArray "shaderStorageBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderStorageBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageBufferArrayNonUniformIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderStorageBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderStorageImageArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "shaderStorageImageArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "shaderStorageImageArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderStorageImageArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageImageArrayNonUniformIndexing}
+        type FieldIsArray "shaderStorageImageArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageImageArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderStorageImageArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageImageArrayNonUniformIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageImageArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderStorageImageArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageImageArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderInputAttachmentArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "shaderInputAttachmentArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "shaderInputAttachmentArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderInputAttachmentArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayNonUniformIndexing}
+        type FieldIsArray "shaderInputAttachmentArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderInputAttachmentArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayNonUniformIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderInputAttachmentArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderUniformTexelBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "shaderUniformTexelBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional
+               "shaderUniformTexelBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderUniformTexelBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayNonUniformIndexing}
+        type FieldIsArray "shaderUniformTexelBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderUniformTexelBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayNonUniformIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderUniformTexelBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderStorageTexelBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "shaderStorageTexelBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional
+               "shaderStorageTexelBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderStorageTexelBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayNonUniformIndexing}
+        type FieldIsArray "shaderStorageTexelBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderStorageTexelBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayNonUniformIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderStorageTexelBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorBindingUniformBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "descriptorBindingUniformBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "descriptorBindingUniformBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorBindingUniformBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformBufferUpdateAfterBind}
+        type FieldIsArray "descriptorBindingUniformBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorBindingUniformBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformBufferUpdateAfterBind})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorBindingUniformBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorBindingSampledImageUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "descriptorBindingSampledImageUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "descriptorBindingSampledImageUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorBindingSampledImageUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingSampledImageUpdateAfterBind}
+        type FieldIsArray "descriptorBindingSampledImageUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingSampledImageUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorBindingSampledImageUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingSampledImageUpdateAfterBind})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingSampledImageUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorBindingSampledImageUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingSampledImageUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorBindingStorageImageUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "descriptorBindingStorageImageUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "descriptorBindingStorageImageUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorBindingStorageImageUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageImageUpdateAfterBind}
+        type FieldIsArray "descriptorBindingStorageImageUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageImageUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorBindingStorageImageUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageImageUpdateAfterBind})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageImageUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorBindingStorageImageUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageImageUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorBindingStorageBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "descriptorBindingStorageBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "descriptorBindingStorageBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorBindingStorageBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageBufferUpdateAfterBind}
+        type FieldIsArray "descriptorBindingStorageBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorBindingStorageBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageBufferUpdateAfterBind})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorBindingStorageBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorBindingUniformTexelBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "descriptorBindingUniformTexelBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional
+               "descriptorBindingUniformTexelBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset
+               "descriptorBindingUniformTexelBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformTexelBufferUpdateAfterBind}
+        type FieldIsArray
+               "descriptorBindingUniformTexelBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformTexelBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorBindingUniformTexelBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformTexelBufferUpdateAfterBind})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformTexelBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorBindingUniformTexelBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformTexelBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorBindingStorageTexelBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "descriptorBindingStorageTexelBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional
+               "descriptorBindingStorageTexelBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset
+               "descriptorBindingStorageTexelBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageTexelBufferUpdateAfterBind}
+        type FieldIsArray
+               "descriptorBindingStorageTexelBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageTexelBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorBindingStorageTexelBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageTexelBufferUpdateAfterBind})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageTexelBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorBindingStorageTexelBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageTexelBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorBindingUpdateUnusedWhilePending"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "descriptorBindingUpdateUnusedWhilePending"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "descriptorBindingUpdateUnusedWhilePending"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorBindingUpdateUnusedWhilePending"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUpdateUnusedWhilePending}
+        type FieldIsArray "descriptorBindingUpdateUnusedWhilePending"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUpdateUnusedWhilePending}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorBindingUpdateUnusedWhilePending"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUpdateUnusedWhilePending})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUpdateUnusedWhilePending}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorBindingUpdateUnusedWhilePending"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUpdateUnusedWhilePending}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorBindingPartiallyBound"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "descriptorBindingPartiallyBound"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "descriptorBindingPartiallyBound"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorBindingPartiallyBound"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingPartiallyBound}
+        type FieldIsArray "descriptorBindingPartiallyBound"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingPartiallyBound}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorBindingPartiallyBound"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingPartiallyBound})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingPartiallyBound}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorBindingPartiallyBound"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingPartiallyBound}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorBindingVariableDescriptorCount"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "descriptorBindingVariableDescriptorCount"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "descriptorBindingVariableDescriptorCount"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorBindingVariableDescriptorCount"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingVariableDescriptorCount}
+        type FieldIsArray "descriptorBindingVariableDescriptorCount"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingVariableDescriptorCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorBindingVariableDescriptorCount"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingVariableDescriptorCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingVariableDescriptorCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorBindingVariableDescriptorCount"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingVariableDescriptorCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "runtimeDescriptorArray"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "runtimeDescriptorArray"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "runtimeDescriptorArray"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "runtimeDescriptorArray"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, runtimeDescriptorArray}
+        type FieldIsArray "runtimeDescriptorArray"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, runtimeDescriptorArray}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "runtimeDescriptorArray"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, runtimeDescriptorArray})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, runtimeDescriptorArray}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "runtimeDescriptorArray"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, runtimeDescriptorArray}
+
+instance Show VkPhysicalDeviceDescriptorIndexingFeaturesEXT where
+        showsPrec d x
+          = showString "VkPhysicalDeviceDescriptorIndexingFeaturesEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "shaderInputAttachmentArrayDynamicIndexing = " .
+                            showsPrec d
+                              (getField @"shaderInputAttachmentArrayDynamicIndexing" x)
+                              .
+                              showString ", " .
+                                showString "shaderUniformTexelBufferArrayDynamicIndexing = " .
+                                  showsPrec d
+                                    (getField @"shaderUniformTexelBufferArrayDynamicIndexing" x)
+                                    .
+                                    showString ", " .
+                                      showString "shaderStorageTexelBufferArrayDynamicIndexing = " .
+                                        showsPrec d
+                                          (getField @"shaderStorageTexelBufferArrayDynamicIndexing"
+                                             x)
+                                          .
+                                          showString ", " .
+                                            showString
+                                              "shaderUniformBufferArrayNonUniformIndexing = "
+                                              .
+                                              showsPrec d
+                                                (getField
+                                                   @"shaderUniformBufferArrayNonUniformIndexing"
+                                                   x)
+                                                .
+                                                showString ", " .
+                                                  showString
+                                                    "shaderSampledImageArrayNonUniformIndexing = "
+                                                    .
+                                                    showsPrec d
+                                                      (getField
+                                                         @"shaderSampledImageArrayNonUniformIndexing"
+                                                         x)
+                                                      .
+                                                      showString ", " .
+                                                        showString
+                                                          "shaderStorageBufferArrayNonUniformIndexing = "
+                                                          .
+                                                          showsPrec d
+                                                            (getField
+                                                               @"shaderStorageBufferArrayNonUniformIndexing"
+                                                               x)
+                                                            .
+                                                            showString ", " .
+                                                              showString
+                                                                "shaderStorageImageArrayNonUniformIndexing = "
+                                                                .
+                                                                showsPrec d
+                                                                  (getField
+                                                                     @"shaderStorageImageArrayNonUniformIndexing"
+                                                                     x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString
+                                                                      "shaderInputAttachmentArrayNonUniformIndexing = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"shaderInputAttachmentArrayNonUniformIndexing"
+                                                                           x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "shaderUniformTexelBufferArrayNonUniformIndexing = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"shaderUniformTexelBufferArrayNonUniformIndexing"
+                                                                                 x)
+                                                                              .
+                                                                              showString ", " .
+                                                                                showString
+                                                                                  "shaderStorageTexelBufferArrayNonUniformIndexing = "
+                                                                                  .
+                                                                                  showsPrec d
+                                                                                    (getField
+                                                                                       @"shaderStorageTexelBufferArrayNonUniformIndexing"
+                                                                                       x)
+                                                                                    .
+                                                                                    showString ", "
+                                                                                      .
+                                                                                      showString
+                                                                                        "descriptorBindingUniformBufferUpdateAfterBind = "
+                                                                                        .
+                                                                                        showsPrec d
+                                                                                          (getField
+                                                                                             @"descriptorBindingUniformBufferUpdateAfterBind"
+                                                                                             x)
+                                                                                          .
+                                                                                          showString
+                                                                                            ", "
+                                                                                            .
+                                                                                            showString
+                                                                                              "descriptorBindingSampledImageUpdateAfterBind = "
+                                                                                              .
+                                                                                              showsPrec
+                                                                                                d
+                                                                                                (getField
+                                                                                                   @"descriptorBindingSampledImageUpdateAfterBind"
+                                                                                                   x)
+                                                                                                .
+                                                                                                showString
+                                                                                                  ", "
+                                                                                                  .
+                                                                                                  showString
+                                                                                                    "descriptorBindingStorageImageUpdateAfterBind = "
+                                                                                                    .
+                                                                                                    showsPrec
+                                                                                                      d
+                                                                                                      (getField
+                                                                                                         @"descriptorBindingStorageImageUpdateAfterBind"
+                                                                                                         x)
+                                                                                                      .
+                                                                                                      showString
+                                                                                                        ", "
+                                                                                                        .
+                                                                                                        showString
+                                                                                                          "descriptorBindingStorageBufferUpdateAfterBind = "
+                                                                                                          .
+                                                                                                          showsPrec
+                                                                                                            d
+                                                                                                            (getField
+                                                                                                               @"descriptorBindingStorageBufferUpdateAfterBind"
+                                                                                                               x)
+                                                                                                            .
+                                                                                                            showString
+                                                                                                              ", "
+                                                                                                              .
+                                                                                                              showString
+                                                                                                                "descriptorBindingUniformTexelBufferUpdateAfterBind = "
+                                                                                                                .
+                                                                                                                showsPrec
+                                                                                                                  d
+                                                                                                                  (getField
+                                                                                                                     @"descriptorBindingUniformTexelBufferUpdateAfterBind"
+                                                                                                                     x)
+                                                                                                                  .
+                                                                                                                  showString
+                                                                                                                    ", "
+                                                                                                                    .
+                                                                                                                    showString
+                                                                                                                      "descriptorBindingStorageTexelBufferUpdateAfterBind = "
+                                                                                                                      .
+                                                                                                                      showsPrec
+                                                                                                                        d
+                                                                                                                        (getField
+                                                                                                                           @"descriptorBindingStorageTexelBufferUpdateAfterBind"
+                                                                                                                           x)
+                                                                                                                        .
+                                                                                                                        showString
+                                                                                                                          ", "
+                                                                                                                          .
+                                                                                                                          showString
+                                                                                                                            "descriptorBindingUpdateUnusedWhilePending = "
+                                                                                                                            .
+                                                                                                                            showsPrec
+                                                                                                                              d
+                                                                                                                              (getField
+                                                                                                                                 @"descriptorBindingUpdateUnusedWhilePending"
+                                                                                                                                 x)
+                                                                                                                              .
+                                                                                                                              showString
+                                                                                                                                ", "
+                                                                                                                                .
+                                                                                                                                showString
+                                                                                                                                  "descriptorBindingPartiallyBound = "
+                                                                                                                                  .
+                                                                                                                                  showsPrec
+                                                                                                                                    d
+                                                                                                                                    (getField
+                                                                                                                                       @"descriptorBindingPartiallyBound"
+                                                                                                                                       x)
+                                                                                                                                    .
+                                                                                                                                    showString
+                                                                                                                                      ", "
+                                                                                                                                      .
+                                                                                                                                      showString
+                                                                                                                                        "descriptorBindingVariableDescriptorCount = "
+                                                                                                                                        .
+                                                                                                                                        showsPrec
+                                                                                                                                          d
+                                                                                                                                          (getField
+                                                                                                                                             @"descriptorBindingVariableDescriptorCount"
+                                                                                                                                             x)
+                                                                                                                                          .
+                                                                                                                                          showString
+                                                                                                                                            ", "
+                                                                                                                                            .
+                                                                                                                                            showString
+                                                                                                                                              "runtimeDescriptorArray = "
+                                                                                                                                              .
+                                                                                                                                              showsPrec
+                                                                                                                                                d
+                                                                                                                                                (getField
+                                                                                                                                                   @"runtimeDescriptorArray"
+                                                                                                                                                   x)
+                                                                                                                                                .
+                                                                                                                                                showChar
+                                                                                                                                                  '}'
+
+-- | > typedef struct VkPhysicalDeviceDescriptorIndexingPropertiesEXT {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     uint32_t               maxUpdateAfterBindDescriptorsInAllPools;
+--   >     VkBool32               shaderUniformBufferArrayNonUniformIndexingNative;
+--   >     VkBool32               shaderSampledImageArrayNonUniformIndexingNative;
+--   >     VkBool32               shaderStorageBufferArrayNonUniformIndexingNative;
+--   >     VkBool32               shaderStorageImageArrayNonUniformIndexingNative;
+--   >     VkBool32               shaderInputAttachmentArrayNonUniformIndexingNative;
+--   >     VkBool32               robustBufferAccessUpdateAfterBind;
+--   >     VkBool32               quadDivergentImplicitLod;
+--   >     uint32_t               maxPerStageDescriptorUpdateAfterBindSamplers;
+--   >     uint32_t               maxPerStageDescriptorUpdateAfterBindUniformBuffers;
+--   >     uint32_t               maxPerStageDescriptorUpdateAfterBindStorageBuffers;
+--   >     uint32_t               maxPerStageDescriptorUpdateAfterBindSampledImages;
+--   >     uint32_t               maxPerStageDescriptorUpdateAfterBindStorageImages;
+--   >     uint32_t               maxPerStageDescriptorUpdateAfterBindInputAttachments;
+--   >     uint32_t               maxPerStageUpdateAfterBindResources;
+--   >     uint32_t               maxDescriptorSetUpdateAfterBindSamplers;
+--   >     uint32_t               maxDescriptorSetUpdateAfterBindUniformBuffers;
+--   >     uint32_t               maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
+--   >     uint32_t               maxDescriptorSetUpdateAfterBindStorageBuffers;
+--   >     uint32_t               maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
+--   >     uint32_t               maxDescriptorSetUpdateAfterBindSampledImages;
+--   >     uint32_t               maxDescriptorSetUpdateAfterBindStorageImages;
+--   >     uint32_t               maxDescriptorSetUpdateAfterBindInputAttachments;
+--   > } VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceDescriptorIndexingPropertiesEXT VkPhysicalDeviceDescriptorIndexingPropertiesEXT registry at www.khronos.org>
+type VkPhysicalDeviceDescriptorIndexingPropertiesEXT =
+     VulkanStruct VkPhysicalDeviceDescriptorIndexingPropertiesEXT' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceDescriptorIndexingPropertiesEXT' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceDescriptorIndexingPropertiesEXT where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceDescriptorIndexingPropertiesEXT where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceDescriptorIndexingPropertiesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceDescriptorIndexingPropertiesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type StructFields VkPhysicalDeviceDescriptorIndexingPropertiesEXT =
+             '["sType", "pNext", "maxUpdateAfterBindDescriptorsInAllPools", -- ' closing tick for hsc2hs
+               "shaderUniformBufferArrayNonUniformIndexingNative",
+               "shaderSampledImageArrayNonUniformIndexingNative",
+               "shaderStorageBufferArrayNonUniformIndexingNative",
+               "shaderStorageImageArrayNonUniformIndexingNative",
+               "shaderInputAttachmentArrayNonUniformIndexingNative",
+               "robustBufferAccessUpdateAfterBind", "quadDivergentImplicitLod",
+               "maxPerStageDescriptorUpdateAfterBindSamplers",
+               "maxPerStageDescriptorUpdateAfterBindUniformBuffers",
+               "maxPerStageDescriptorUpdateAfterBindStorageBuffers",
+               "maxPerStageDescriptorUpdateAfterBindSampledImages",
+               "maxPerStageDescriptorUpdateAfterBindStorageImages",
+               "maxPerStageDescriptorUpdateAfterBindInputAttachments",
+               "maxPerStageUpdateAfterBindResources",
+               "maxDescriptorSetUpdateAfterBindSamplers",
+               "maxDescriptorSetUpdateAfterBindUniformBuffers",
+               "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic",
+               "maxDescriptorSetUpdateAfterBindStorageBuffers",
+               "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic",
+               "maxDescriptorSetUpdateAfterBindSampledImages",
+               "maxDescriptorSetUpdateAfterBindStorageImages",
+               "maxDescriptorSetUpdateAfterBindInputAttachments"]
+        type CUnionType VkPhysicalDeviceDescriptorIndexingPropertiesEXT =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceDescriptorIndexingPropertiesEXT =
+             'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxUpdateAfterBindDescriptorsInAllPools"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxUpdateAfterBindDescriptorsInAllPools"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional "maxUpdateAfterBindDescriptorsInAllPools"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxUpdateAfterBindDescriptorsInAllPools"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxUpdateAfterBindDescriptorsInAllPools}
+        type FieldIsArray "maxUpdateAfterBindDescriptorsInAllPools"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxUpdateAfterBindDescriptorsInAllPools}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxUpdateAfterBindDescriptorsInAllPools"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxUpdateAfterBindDescriptorsInAllPools})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxUpdateAfterBindDescriptorsInAllPools}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxUpdateAfterBindDescriptorsInAllPools"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxUpdateAfterBindDescriptorsInAllPools}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderUniformBufferArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "shaderUniformBufferArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = VkBool32
+        type FieldOptional
+               "shaderUniformBufferArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderUniformBufferArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderUniformBufferArrayNonUniformIndexingNative}
+        type FieldIsArray
+               "shaderUniformBufferArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderUniformBufferArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderUniformBufferArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderUniformBufferArrayNonUniformIndexingNative})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderUniformBufferArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderUniformBufferArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderUniformBufferArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderSampledImageArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "shaderSampledImageArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = VkBool32
+        type FieldOptional
+               "shaderSampledImageArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderSampledImageArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderSampledImageArrayNonUniformIndexingNative}
+        type FieldIsArray "shaderSampledImageArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderSampledImageArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderSampledImageArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderSampledImageArrayNonUniformIndexingNative})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderSampledImageArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderSampledImageArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderSampledImageArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderStorageBufferArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "shaderStorageBufferArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = VkBool32
+        type FieldOptional
+               "shaderStorageBufferArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderStorageBufferArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageBufferArrayNonUniformIndexingNative}
+        type FieldIsArray
+               "shaderStorageBufferArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageBufferArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderStorageBufferArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageBufferArrayNonUniformIndexingNative})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageBufferArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderStorageBufferArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageBufferArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderStorageImageArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "shaderStorageImageArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = VkBool32
+        type FieldOptional
+               "shaderStorageImageArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderStorageImageArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageImageArrayNonUniformIndexingNative}
+        type FieldIsArray "shaderStorageImageArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageImageArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderStorageImageArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageImageArrayNonUniformIndexingNative})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageImageArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderStorageImageArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageImageArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderInputAttachmentArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "shaderInputAttachmentArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = VkBool32
+        type FieldOptional
+               "shaderInputAttachmentArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset
+               "shaderInputAttachmentArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderInputAttachmentArrayNonUniformIndexingNative}
+        type FieldIsArray
+               "shaderInputAttachmentArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderInputAttachmentArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderInputAttachmentArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderInputAttachmentArrayNonUniformIndexingNative})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderInputAttachmentArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderInputAttachmentArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderInputAttachmentArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         HasField "robustBufferAccessUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "robustBufferAccessUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = VkBool32
+        type FieldOptional "robustBufferAccessUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "robustBufferAccessUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, robustBufferAccessUpdateAfterBind}
+        type FieldIsArray "robustBufferAccessUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, robustBufferAccessUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "robustBufferAccessUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, robustBufferAccessUpdateAfterBind})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, robustBufferAccessUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "robustBufferAccessUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, robustBufferAccessUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         HasField "quadDivergentImplicitLod"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "quadDivergentImplicitLod"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = VkBool32
+        type FieldOptional "quadDivergentImplicitLod"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "quadDivergentImplicitLod"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, quadDivergentImplicitLod}
+        type FieldIsArray "quadDivergentImplicitLod"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, quadDivergentImplicitLod}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "quadDivergentImplicitLod"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, quadDivergentImplicitLod})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, quadDivergentImplicitLod}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "quadDivergentImplicitLod"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, quadDivergentImplicitLod}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorUpdateAfterBindSamplers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxPerStageDescriptorUpdateAfterBindSamplers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional "maxPerStageDescriptorUpdateAfterBindSamplers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPerStageDescriptorUpdateAfterBindSamplers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSamplers}
+        type FieldIsArray "maxPerStageDescriptorUpdateAfterBindSamplers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSamplers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorUpdateAfterBindSamplers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSamplers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSamplers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorUpdateAfterBindSamplers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSamplers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional
+               "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset
+               "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindUniformBuffers}
+        type FieldIsArray
+               "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindUniformBuffers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional
+               "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset
+               "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageBuffers}
+        type FieldIsArray
+               "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageBuffers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorUpdateAfterBindSampledImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxPerStageDescriptorUpdateAfterBindSampledImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional
+               "maxPerStageDescriptorUpdateAfterBindSampledImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset
+               "maxPerStageDescriptorUpdateAfterBindSampledImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSampledImages}
+        type FieldIsArray
+               "maxPerStageDescriptorUpdateAfterBindSampledImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSampledImages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorUpdateAfterBindSampledImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSampledImages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSampledImages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorUpdateAfterBindSampledImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSampledImages}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorUpdateAfterBindStorageImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxPerStageDescriptorUpdateAfterBindStorageImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional
+               "maxPerStageDescriptorUpdateAfterBindStorageImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset
+               "maxPerStageDescriptorUpdateAfterBindStorageImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageImages}
+        type FieldIsArray
+               "maxPerStageDescriptorUpdateAfterBindStorageImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageImages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorUpdateAfterBindStorageImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageImages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageImages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorUpdateAfterBindStorageImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageImages}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorUpdateAfterBindInputAttachments"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType
+               "maxPerStageDescriptorUpdateAfterBindInputAttachments"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional
+               "maxPerStageDescriptorUpdateAfterBindInputAttachments"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset
+               "maxPerStageDescriptorUpdateAfterBindInputAttachments"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindInputAttachments}
+        type FieldIsArray
+               "maxPerStageDescriptorUpdateAfterBindInputAttachments"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorUpdateAfterBindInputAttachments"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindInputAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField
+           "maxPerStageDescriptorUpdateAfterBindInputAttachments"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageUpdateAfterBindResources"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxPerStageUpdateAfterBindResources"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional "maxPerStageUpdateAfterBindResources"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPerStageUpdateAfterBindResources"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageUpdateAfterBindResources}
+        type FieldIsArray "maxPerStageUpdateAfterBindResources"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageUpdateAfterBindResources}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageUpdateAfterBindResources"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageUpdateAfterBindResources})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageUpdateAfterBindResources}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageUpdateAfterBindResources"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageUpdateAfterBindResources}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetUpdateAfterBindSamplers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxDescriptorSetUpdateAfterBindSamplers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional "maxDescriptorSetUpdateAfterBindSamplers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetUpdateAfterBindSamplers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSamplers}
+        type FieldIsArray "maxDescriptorSetUpdateAfterBindSamplers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSamplers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetUpdateAfterBindSamplers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSamplers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSamplers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetUpdateAfterBindSamplers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSamplers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetUpdateAfterBindUniformBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxDescriptorSetUpdateAfterBindUniformBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional "maxDescriptorSetUpdateAfterBindUniformBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetUpdateAfterBindUniformBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffers}
+        type FieldIsArray "maxDescriptorSetUpdateAfterBindUniformBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetUpdateAfterBindUniformBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetUpdateAfterBindUniformBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType
+               "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional
+               "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset
+               "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic}
+        type FieldIsArray
+               "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField
+           "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetUpdateAfterBindStorageBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxDescriptorSetUpdateAfterBindStorageBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional "maxDescriptorSetUpdateAfterBindStorageBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetUpdateAfterBindStorageBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffers}
+        type FieldIsArray "maxDescriptorSetUpdateAfterBindStorageBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetUpdateAfterBindStorageBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetUpdateAfterBindStorageBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType
+               "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional
+               "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset
+               "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic}
+        type FieldIsArray
+               "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField
+           "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetUpdateAfterBindSampledImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxDescriptorSetUpdateAfterBindSampledImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional "maxDescriptorSetUpdateAfterBindSampledImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetUpdateAfterBindSampledImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSampledImages}
+        type FieldIsArray "maxDescriptorSetUpdateAfterBindSampledImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSampledImages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetUpdateAfterBindSampledImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSampledImages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSampledImages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetUpdateAfterBindSampledImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSampledImages}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetUpdateAfterBindStorageImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxDescriptorSetUpdateAfterBindStorageImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional "maxDescriptorSetUpdateAfterBindStorageImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetUpdateAfterBindStorageImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageImages}
+        type FieldIsArray "maxDescriptorSetUpdateAfterBindStorageImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageImages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetUpdateAfterBindStorageImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageImages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageImages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetUpdateAfterBindStorageImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageImages}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetUpdateAfterBindInputAttachments"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxDescriptorSetUpdateAfterBindInputAttachments"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional
+               "maxDescriptorSetUpdateAfterBindInputAttachments"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetUpdateAfterBindInputAttachments"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindInputAttachments}
+        type FieldIsArray "maxDescriptorSetUpdateAfterBindInputAttachments"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetUpdateAfterBindInputAttachments"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindInputAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetUpdateAfterBindInputAttachments"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindInputAttachments}
+
+instance Show VkPhysicalDeviceDescriptorIndexingPropertiesEXT where
+        showsPrec d x
+          = showString "VkPhysicalDeviceDescriptorIndexingPropertiesEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "maxUpdateAfterBindDescriptorsInAllPools = " .
+                            showsPrec d (getField @"maxUpdateAfterBindDescriptorsInAllPools" x)
+                              .
+                              showString ", " .
+                                showString "shaderUniformBufferArrayNonUniformIndexingNative = " .
+                                  showsPrec d
+                                    (getField @"shaderUniformBufferArrayNonUniformIndexingNative" x)
+                                    .
+                                    showString ", " .
+                                      showString
+                                        "shaderSampledImageArrayNonUniformIndexingNative = "
+                                        .
+                                        showsPrec d
+                                          (getField
+                                             @"shaderSampledImageArrayNonUniformIndexingNative"
+                                             x)
+                                          .
+                                          showString ", " .
+                                            showString
+                                              "shaderStorageBufferArrayNonUniformIndexingNative = "
+                                              .
+                                              showsPrec d
+                                                (getField
+                                                   @"shaderStorageBufferArrayNonUniformIndexingNative"
+                                                   x)
+                                                .
+                                                showString ", " .
+                                                  showString
+                                                    "shaderStorageImageArrayNonUniformIndexingNative = "
+                                                    .
+                                                    showsPrec d
+                                                      (getField
+                                                         @"shaderStorageImageArrayNonUniformIndexingNative"
+                                                         x)
+                                                      .
+                                                      showString ", " .
+                                                        showString
+                                                          "shaderInputAttachmentArrayNonUniformIndexingNative = "
+                                                          .
+                                                          showsPrec d
+                                                            (getField
+                                                               @"shaderInputAttachmentArrayNonUniformIndexingNative"
+                                                               x)
+                                                            .
+                                                            showString ", " .
+                                                              showString
+                                                                "robustBufferAccessUpdateAfterBind = "
+                                                                .
+                                                                showsPrec d
+                                                                  (getField
+                                                                     @"robustBufferAccessUpdateAfterBind"
+                                                                     x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString
+                                                                      "quadDivergentImplicitLod = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"quadDivergentImplicitLod"
+                                                                           x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "maxPerStageDescriptorUpdateAfterBindSamplers = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"maxPerStageDescriptorUpdateAfterBindSamplers"
+                                                                                 x)
+                                                                              .
+                                                                              showString ", " .
+                                                                                showString
+                                                                                  "maxPerStageDescriptorUpdateAfterBindUniformBuffers = "
+                                                                                  .
+                                                                                  showsPrec d
+                                                                                    (getField
+                                                                                       @"maxPerStageDescriptorUpdateAfterBindUniformBuffers"
+                                                                                       x)
+                                                                                    .
+                                                                                    showString ", "
+                                                                                      .
+                                                                                      showString
+                                                                                        "maxPerStageDescriptorUpdateAfterBindStorageBuffers = "
+                                                                                        .
+                                                                                        showsPrec d
+                                                                                          (getField
+                                                                                             @"maxPerStageDescriptorUpdateAfterBindStorageBuffers"
+                                                                                             x)
+                                                                                          .
+                                                                                          showString
+                                                                                            ", "
+                                                                                            .
+                                                                                            showString
+                                                                                              "maxPerStageDescriptorUpdateAfterBindSampledImages = "
+                                                                                              .
+                                                                                              showsPrec
+                                                                                                d
+                                                                                                (getField
+                                                                                                   @"maxPerStageDescriptorUpdateAfterBindSampledImages"
+                                                                                                   x)
+                                                                                                .
+                                                                                                showString
+                                                                                                  ", "
+                                                                                                  .
+                                                                                                  showString
+                                                                                                    "maxPerStageDescriptorUpdateAfterBindStorageImages = "
+                                                                                                    .
+                                                                                                    showsPrec
+                                                                                                      d
+                                                                                                      (getField
+                                                                                                         @"maxPerStageDescriptorUpdateAfterBindStorageImages"
+                                                                                                         x)
+                                                                                                      .
+                                                                                                      showString
+                                                                                                        ", "
+                                                                                                        .
+                                                                                                        showString
+                                                                                                          "maxPerStageDescriptorUpdateAfterBindInputAttachments = "
+                                                                                                          .
+                                                                                                          showsPrec
+                                                                                                            d
+                                                                                                            (getField
+                                                                                                               @"maxPerStageDescriptorUpdateAfterBindInputAttachments"
+                                                                                                               x)
+                                                                                                            .
+                                                                                                            showString
+                                                                                                              ", "
+                                                                                                              .
+                                                                                                              showString
+                                                                                                                "maxPerStageUpdateAfterBindResources = "
+                                                                                                                .
+                                                                                                                showsPrec
+                                                                                                                  d
+                                                                                                                  (getField
+                                                                                                                     @"maxPerStageUpdateAfterBindResources"
+                                                                                                                     x)
+                                                                                                                  .
+                                                                                                                  showString
+                                                                                                                    ", "
+                                                                                                                    .
+                                                                                                                    showString
+                                                                                                                      "maxDescriptorSetUpdateAfterBindSamplers = "
+                                                                                                                      .
+                                                                                                                      showsPrec
+                                                                                                                        d
+                                                                                                                        (getField
+                                                                                                                           @"maxDescriptorSetUpdateAfterBindSamplers"
+                                                                                                                           x)
+                                                                                                                        .
+                                                                                                                        showString
+                                                                                                                          ", "
+                                                                                                                          .
+                                                                                                                          showString
+                                                                                                                            "maxDescriptorSetUpdateAfterBindUniformBuffers = "
+                                                                                                                            .
+                                                                                                                            showsPrec
+                                                                                                                              d
+                                                                                                                              (getField
+                                                                                                                                 @"maxDescriptorSetUpdateAfterBindUniformBuffers"
+                                                                                                                                 x)
+                                                                                                                              .
+                                                                                                                              showString
+                                                                                                                                ", "
+                                                                                                                                .
+                                                                                                                                showString
+                                                                                                                                  "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = "
+                                                                                                                                  .
+                                                                                                                                  showsPrec
+                                                                                                                                    d
+                                                                                                                                    (getField
+                                                                                                                                       @"maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
+                                                                                                                                       x)
+                                                                                                                                    .
+                                                                                                                                    showString
+                                                                                                                                      ", "
+                                                                                                                                      .
+                                                                                                                                      showString
+                                                                                                                                        "maxDescriptorSetUpdateAfterBindStorageBuffers = "
+                                                                                                                                        .
+                                                                                                                                        showsPrec
+                                                                                                                                          d
+                                                                                                                                          (getField
+                                                                                                                                             @"maxDescriptorSetUpdateAfterBindStorageBuffers"
+                                                                                                                                             x)
+                                                                                                                                          .
+                                                                                                                                          showString
+                                                                                                                                            ", "
+                                                                                                                                            .
+                                                                                                                                            showString
+                                                                                                                                              "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = "
+                                                                                                                                              .
+                                                                                                                                              showsPrec
+                                                                                                                                                d
+                                                                                                                                                (getField
+                                                                                                                                                   @"maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
+                                                                                                                                                   x)
+                                                                                                                                                .
+                                                                                                                                                showString
+                                                                                                                                                  ", "
+                                                                                                                                                  .
+                                                                                                                                                  showString
+                                                                                                                                                    "maxDescriptorSetUpdateAfterBindSampledImages = "
+                                                                                                                                                    .
+                                                                                                                                                    showsPrec
+                                                                                                                                                      d
+                                                                                                                                                      (getField
+                                                                                                                                                         @"maxDescriptorSetUpdateAfterBindSampledImages"
+                                                                                                                                                         x)
+                                                                                                                                                      .
+                                                                                                                                                      showString
+                                                                                                                                                        ", "
+                                                                                                                                                        .
+                                                                                                                                                        showString
+                                                                                                                                                          "maxDescriptorSetUpdateAfterBindStorageImages = "
+                                                                                                                                                          .
+                                                                                                                                                          showsPrec
+                                                                                                                                                            d
+                                                                                                                                                            (getField
+                                                                                                                                                               @"maxDescriptorSetUpdateAfterBindStorageImages"
+                                                                                                                                                               x)
+                                                                                                                                                            .
+                                                                                                                                                            showString
+                                                                                                                                                              ", "
+                                                                                                                                                              .
+                                                                                                                                                              showString
+                                                                                                                                                                "maxDescriptorSetUpdateAfterBindInputAttachments = "
+                                                                                                                                                                .
+                                                                                                                                                                showsPrec
+                                                                                                                                                                  d
+                                                                                                                                                                  (getField
+                                                                                                                                                                     @"maxDescriptorSetUpdateAfterBindInputAttachments"
+                                                                                                                                                                     x)
+                                                                                                                                                                  .
+                                                                                                                                                                  showChar
+                                                                                                                                                                    '}'
+
+-- | > typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
+--   >     VkStructureType sType;
+--   >     void*                  pNext;
+--   >     uint32_t               maxDiscardRectangles;
+--   > } VkPhysicalDeviceDiscardRectanglePropertiesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceDiscardRectanglePropertiesEXT VkPhysicalDeviceDiscardRectanglePropertiesEXT registry at www.khronos.org>
+type VkPhysicalDeviceDiscardRectanglePropertiesEXT =
+     VulkanStruct VkPhysicalDeviceDiscardRectanglePropertiesEXT' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceDiscardRectanglePropertiesEXT' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceDiscardRectanglePropertiesEXT where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceDiscardRectanglePropertiesEXT where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceDiscardRectanglePropertiesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceDiscardRectanglePropertiesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        type StructFields VkPhysicalDeviceDiscardRectanglePropertiesEXT =
+             '["sType", "pNext", "maxDiscardRectangles"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceDiscardRectanglePropertiesEXT =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceDiscardRectanglePropertiesEXT =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceDiscardRectanglePropertiesEXT =
+             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDiscardRectangles"
+           VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        type FieldType "maxDiscardRectangles"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             = Word32
+        type FieldOptional "maxDiscardRectangles"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDiscardRectangles"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, maxDiscardRectangles}
+        type FieldIsArray "maxDiscardRectangles"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, maxDiscardRectangles}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDiscardRectangles"
+           VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, maxDiscardRectangles})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, maxDiscardRectangles}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDiscardRectangles"
+           VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, maxDiscardRectangles}
+
+instance Show VkPhysicalDeviceDiscardRectanglePropertiesEXT where
+        showsPrec d x
+          = showString "VkPhysicalDeviceDiscardRectanglePropertiesEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "maxDiscardRectangles = " .
+                            showsPrec d (getField @"maxDiscardRectangles" x) . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceExternalBufferInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkBufferCreateFlags flags;
+--   >     VkBufferUsageFlags               usage;
+--   >     VkExternalMemoryHandleTypeFlagBits handleType;
+--   > } VkPhysicalDeviceExternalBufferInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfo registry at www.khronos.org>
+type VkPhysicalDeviceExternalBufferInfo =
+     VulkanStruct VkPhysicalDeviceExternalBufferInfo' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceExternalBufferInfo' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceExternalBufferInfo where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceExternalBufferInfo where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceExternalBufferInfo where
+        sizeOf ~_ = #{size VkPhysicalDeviceExternalBufferInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceExternalBufferInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceExternalBufferInfo where
+        type StructFields VkPhysicalDeviceExternalBufferInfo =
+             '["sType", "pNext", "flags", "usage", "handleType"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceExternalBufferInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceExternalBufferInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceExternalBufferInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceExternalBufferInfo where
+        type FieldType "sType" VkPhysicalDeviceExternalBufferInfo =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceExternalBufferInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceExternalBufferInfo =
+             #{offset VkPhysicalDeviceExternalBufferInfo, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceExternalBufferInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalBufferInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceExternalBufferInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalBufferInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceExternalBufferInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceExternalBufferInfo where
+        type FieldType "pNext" VkPhysicalDeviceExternalBufferInfo =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceExternalBufferInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceExternalBufferInfo =
+             #{offset VkPhysicalDeviceExternalBufferInfo, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceExternalBufferInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalBufferInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceExternalBufferInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalBufferInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceExternalBufferInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkPhysicalDeviceExternalBufferInfo where
+        type FieldType "flags" VkPhysicalDeviceExternalBufferInfo =
+             VkBufferCreateFlags
+        type FieldOptional "flags" VkPhysicalDeviceExternalBufferInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkPhysicalDeviceExternalBufferInfo =
+             #{offset VkPhysicalDeviceExternalBufferInfo, flags}
+        type FieldIsArray "flags" VkPhysicalDeviceExternalBufferInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalBufferInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkPhysicalDeviceExternalBufferInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalBufferInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkPhysicalDeviceExternalBufferInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "usage" VkPhysicalDeviceExternalBufferInfo where
+        type FieldType "usage" VkPhysicalDeviceExternalBufferInfo =
+             VkBufferUsageFlags
+        type FieldOptional "usage" VkPhysicalDeviceExternalBufferInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "usage" VkPhysicalDeviceExternalBufferInfo =
+             #{offset VkPhysicalDeviceExternalBufferInfo, usage}
+        type FieldIsArray "usage" VkPhysicalDeviceExternalBufferInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalBufferInfo, usage}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "usage" VkPhysicalDeviceExternalBufferInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalBufferInfo, usage})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, usage}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "usage" VkPhysicalDeviceExternalBufferInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, usage}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkPhysicalDeviceExternalBufferInfo where
+        type FieldType "handleType" VkPhysicalDeviceExternalBufferInfo =
+             VkExternalMemoryHandleTypeFlagBits
+        type FieldOptional "handleType" VkPhysicalDeviceExternalBufferInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "handleType" VkPhysicalDeviceExternalBufferInfo =
+             #{offset VkPhysicalDeviceExternalBufferInfo, handleType}
+        type FieldIsArray "handleType" VkPhysicalDeviceExternalBufferInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalBufferInfo, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkPhysicalDeviceExternalBufferInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalBufferInfo, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkPhysicalDeviceExternalBufferInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, handleType}
+
+instance Show VkPhysicalDeviceExternalBufferInfo where
+        showsPrec d x
+          = showString "VkPhysicalDeviceExternalBufferInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "usage = " .
+                                  showsPrec d (getField @"usage" x) .
+                                    showString ", " .
+                                      showString "handleType = " .
+                                        showsPrec d (getField @"handleType" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceExternalBufferInfo`
+type VkPhysicalDeviceExternalBufferInfoKHR =
+     VkPhysicalDeviceExternalBufferInfo
+
+-- | > typedef struct VkPhysicalDeviceExternalFenceInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkExternalFenceHandleTypeFlagBits handleType;
+--   > } VkPhysicalDeviceExternalFenceInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfo registry at www.khronos.org>
+type VkPhysicalDeviceExternalFenceInfo =
+     VulkanStruct VkPhysicalDeviceExternalFenceInfo' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceExternalFenceInfo' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceExternalFenceInfo where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceExternalFenceInfo where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceExternalFenceInfo where
+        sizeOf ~_ = #{size VkPhysicalDeviceExternalFenceInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceExternalFenceInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceExternalFenceInfo where
+        type StructFields VkPhysicalDeviceExternalFenceInfo =
+             '["sType", "pNext", "handleType"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceExternalFenceInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceExternalFenceInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceExternalFenceInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceExternalFenceInfo where
+        type FieldType "sType" VkPhysicalDeviceExternalFenceInfo =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceExternalFenceInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceExternalFenceInfo =
+             #{offset VkPhysicalDeviceExternalFenceInfo, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceExternalFenceInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalFenceInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceExternalFenceInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalFenceInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceExternalFenceInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceExternalFenceInfo where
+        type FieldType "pNext" VkPhysicalDeviceExternalFenceInfo = Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceExternalFenceInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceExternalFenceInfo =
+             #{offset VkPhysicalDeviceExternalFenceInfo, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceExternalFenceInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalFenceInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceExternalFenceInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalFenceInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceExternalFenceInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkPhysicalDeviceExternalFenceInfo where
+        type FieldType "handleType" VkPhysicalDeviceExternalFenceInfo =
+             VkExternalFenceHandleTypeFlagBits
+        type FieldOptional "handleType" VkPhysicalDeviceExternalFenceInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "handleType" VkPhysicalDeviceExternalFenceInfo =
+             #{offset VkPhysicalDeviceExternalFenceInfo, handleType}
+        type FieldIsArray "handleType" VkPhysicalDeviceExternalFenceInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalFenceInfo, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkPhysicalDeviceExternalFenceInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalFenceInfo, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkPhysicalDeviceExternalFenceInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, handleType}
+
+instance Show VkPhysicalDeviceExternalFenceInfo where
+        showsPrec d x
+          = showString "VkPhysicalDeviceExternalFenceInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "handleType = " .
+                            showsPrec d (getField @"handleType" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceExternalFenceInfo`
+type VkPhysicalDeviceExternalFenceInfoKHR =
+     VkPhysicalDeviceExternalFenceInfo
+
+-- | > typedef struct VkPhysicalDeviceExternalImageFormatInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkExternalMemoryHandleTypeFlagBits handleType;
+--   > } VkPhysicalDeviceExternalImageFormatInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfo registry at www.khronos.org>
+type VkPhysicalDeviceExternalImageFormatInfo =
+     VulkanStruct VkPhysicalDeviceExternalImageFormatInfo' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceExternalImageFormatInfo' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceExternalImageFormatInfo where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceExternalImageFormatInfo where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceExternalImageFormatInfo where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceExternalImageFormatInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceExternalImageFormatInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceExternalImageFormatInfo
+         where
+        type StructFields VkPhysicalDeviceExternalImageFormatInfo =
+             '["sType", "pNext", "handleType"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceExternalImageFormatInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceExternalImageFormatInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceExternalImageFormatInfo =
+             '[VkPhysicalDeviceImageFormatInfo2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceExternalImageFormatInfo where
+        type FieldType "sType" VkPhysicalDeviceExternalImageFormatInfo =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceExternalImageFormatInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceExternalImageFormatInfo =
+             #{offset VkPhysicalDeviceExternalImageFormatInfo, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceExternalImageFormatInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalImageFormatInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceExternalImageFormatInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalImageFormatInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceExternalImageFormatInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceExternalImageFormatInfo where
+        type FieldType "pNext" VkPhysicalDeviceExternalImageFormatInfo =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceExternalImageFormatInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceExternalImageFormatInfo =
+             #{offset VkPhysicalDeviceExternalImageFormatInfo, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceExternalImageFormatInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalImageFormatInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceExternalImageFormatInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalImageFormatInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceExternalImageFormatInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkPhysicalDeviceExternalImageFormatInfo where
+        type FieldType "handleType" VkPhysicalDeviceExternalImageFormatInfo
+             = VkExternalMemoryHandleTypeFlagBits
+        type FieldOptional "handleType"
+               VkPhysicalDeviceExternalImageFormatInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "handleType"
+               VkPhysicalDeviceExternalImageFormatInfo
+             =
+             #{offset VkPhysicalDeviceExternalImageFormatInfo, handleType}
+        type FieldIsArray "handleType"
+               VkPhysicalDeviceExternalImageFormatInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalImageFormatInfo, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkPhysicalDeviceExternalImageFormatInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalImageFormatInfo, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkPhysicalDeviceExternalImageFormatInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, handleType}
+
+instance Show VkPhysicalDeviceExternalImageFormatInfo where
+        showsPrec d x
+          = showString "VkPhysicalDeviceExternalImageFormatInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "handleType = " .
+                            showsPrec d (getField @"handleType" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceExternalImageFormatInfo`
+type VkPhysicalDeviceExternalImageFormatInfoKHR =
+     VkPhysicalDeviceExternalImageFormatInfo
+
+-- | > typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
+--   >     VkStructureType sType;
+--   >     void* pNext;
+--   >     VkDeviceSize minImportedHostPointerAlignment;
+--   > } VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceExternalMemoryHostPropertiesEXT VkPhysicalDeviceExternalMemoryHostPropertiesEXT registry at www.khronos.org>
+type VkPhysicalDeviceExternalMemoryHostPropertiesEXT =
+     VulkanStruct VkPhysicalDeviceExternalMemoryHostPropertiesEXT' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceExternalMemoryHostPropertiesEXT' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceExternalMemoryHostPropertiesEXT where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceExternalMemoryHostPropertiesEXT where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceExternalMemoryHostPropertiesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceExternalMemoryHostPropertiesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        type StructFields VkPhysicalDeviceExternalMemoryHostPropertiesEXT =
+             '["sType", "pNext", "minImportedHostPointerAlignment"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceExternalMemoryHostPropertiesEXT =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceExternalMemoryHostPropertiesEXT =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType"
+           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext"
+           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "minImportedHostPointerAlignment"
+           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        type FieldType "minImportedHostPointerAlignment"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             = VkDeviceSize
+        type FieldOptional "minImportedHostPointerAlignment"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minImportedHostPointerAlignment"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, minImportedHostPointerAlignment}
+        type FieldIsArray "minImportedHostPointerAlignment"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, minImportedHostPointerAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minImportedHostPointerAlignment"
+           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, minImportedHostPointerAlignment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, minImportedHostPointerAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minImportedHostPointerAlignment"
+           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, minImportedHostPointerAlignment}
+
+instance Show VkPhysicalDeviceExternalMemoryHostPropertiesEXT where
+        showsPrec d x
+          = showString "VkPhysicalDeviceExternalMemoryHostPropertiesEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "minImportedHostPointerAlignment = " .
+                            showsPrec d (getField @"minImportedHostPointerAlignment" x) .
+                              showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkExternalSemaphoreHandleTypeFlagBits handleType;
+--   > } VkPhysicalDeviceExternalSemaphoreInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfo registry at www.khronos.org>
+type VkPhysicalDeviceExternalSemaphoreInfo =
+     VulkanStruct VkPhysicalDeviceExternalSemaphoreInfo' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceExternalSemaphoreInfo' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceExternalSemaphoreInfo where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceExternalSemaphoreInfo where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceExternalSemaphoreInfo where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceExternalSemaphoreInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceExternalSemaphoreInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceExternalSemaphoreInfo where
+        type StructFields VkPhysicalDeviceExternalSemaphoreInfo =
+             '["sType", "pNext", "handleType"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceExternalSemaphoreInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceExternalSemaphoreInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceExternalSemaphoreInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceExternalSemaphoreInfo where
+        type FieldType "sType" VkPhysicalDeviceExternalSemaphoreInfo =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceExternalSemaphoreInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceExternalSemaphoreInfo =
+             #{offset VkPhysicalDeviceExternalSemaphoreInfo, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceExternalSemaphoreInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalSemaphoreInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceExternalSemaphoreInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalSemaphoreInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceExternalSemaphoreInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceExternalSemaphoreInfo where
+        type FieldType "pNext" VkPhysicalDeviceExternalSemaphoreInfo =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceExternalSemaphoreInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceExternalSemaphoreInfo =
+             #{offset VkPhysicalDeviceExternalSemaphoreInfo, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceExternalSemaphoreInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalSemaphoreInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceExternalSemaphoreInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalSemaphoreInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceExternalSemaphoreInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkPhysicalDeviceExternalSemaphoreInfo where
+        type FieldType "handleType" VkPhysicalDeviceExternalSemaphoreInfo =
+             VkExternalSemaphoreHandleTypeFlagBits
+        type FieldOptional "handleType"
+               VkPhysicalDeviceExternalSemaphoreInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "handleType" VkPhysicalDeviceExternalSemaphoreInfo
+             =
+             #{offset VkPhysicalDeviceExternalSemaphoreInfo, handleType}
+        type FieldIsArray "handleType"
+               VkPhysicalDeviceExternalSemaphoreInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalSemaphoreInfo, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkPhysicalDeviceExternalSemaphoreInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalSemaphoreInfo, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkPhysicalDeviceExternalSemaphoreInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, handleType}
+
+instance Show VkPhysicalDeviceExternalSemaphoreInfo where
+        showsPrec d x
+          = showString "VkPhysicalDeviceExternalSemaphoreInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "handleType = " .
+                            showsPrec d (getField @"handleType" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceExternalSemaphoreInfo`
+type VkPhysicalDeviceExternalSemaphoreInfoKHR =
+     VkPhysicalDeviceExternalSemaphoreInfo
+
+-- | > typedef struct VkPhysicalDeviceFeatures2 {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkPhysicalDeviceFeatures         features;
+--   > } VkPhysicalDeviceFeatures2;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2 registry at www.khronos.org>
+type VkPhysicalDeviceFeatures2 =
+     VulkanStruct VkPhysicalDeviceFeatures2' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceFeatures2' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceFeatures2 where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceFeatures2 where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceFeatures2 where
+        sizeOf ~_ = #{size VkPhysicalDeviceFeatures2}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkPhysicalDeviceFeatures2}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceFeatures2 where
+        type StructFields VkPhysicalDeviceFeatures2 =
+             '["sType", "pNext", "features"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceFeatures2 =
+             '[VkDeviceCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceFeatures2 where
+        type FieldType "sType" VkPhysicalDeviceFeatures2 = VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceFeatures2 =
+             #{offset VkPhysicalDeviceFeatures2, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceFeatures2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures2, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceFeatures2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures2, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceFeatures2 where
+        type FieldType "pNext" VkPhysicalDeviceFeatures2 = Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceFeatures2 =
+             #{offset VkPhysicalDeviceFeatures2, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceFeatures2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures2, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceFeatures2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures2, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "features" VkPhysicalDeviceFeatures2 where
+        type FieldType "features" VkPhysicalDeviceFeatures2 =
+             VkPhysicalDeviceFeatures
+        type FieldOptional "features" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "features" VkPhysicalDeviceFeatures2 =
+             #{offset VkPhysicalDeviceFeatures2, features}
+        type FieldIsArray "features" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures2, features}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "features" VkPhysicalDeviceFeatures2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures2, features})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures2, features}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "features" VkPhysicalDeviceFeatures2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures2, features}
+
+instance Show VkPhysicalDeviceFeatures2 where
+        showsPrec d x
+          = showString "VkPhysicalDeviceFeatures2 {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "features = " .
+                            showsPrec d (getField @"features" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceFeatures2`
+type VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2
+
+-- | > typedef struct VkPhysicalDeviceGroupProperties {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     uint32_t                         physicalDeviceCount;
+--   >     VkPhysicalDevice                 physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
+--   >     VkBool32                         subsetAllocation;
+--   > } VkPhysicalDeviceGroupProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupProperties registry at www.khronos.org>
+type VkPhysicalDeviceGroupProperties =
+     VulkanStruct VkPhysicalDeviceGroupProperties' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceGroupProperties' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceGroupProperties where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceGroupProperties where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceGroupProperties where
+        sizeOf ~_ = #{size VkPhysicalDeviceGroupProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceGroupProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceGroupProperties where
+        type StructFields VkPhysicalDeviceGroupProperties =
+             '["sType", "pNext", "physicalDeviceCount", "physicalDevices", -- ' closing tick for hsc2hs
+               "subsetAllocation"]
+        type CUnionType VkPhysicalDeviceGroupProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceGroupProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceGroupProperties = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceGroupProperties where
+        type FieldType "sType" VkPhysicalDeviceGroupProperties =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceGroupProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceGroupProperties =
+             #{offset VkPhysicalDeviceGroupProperties, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceGroupProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceGroupProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceGroupProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceGroupProperties, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceGroupProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceGroupProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceGroupProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceGroupProperties where
+        type FieldType "pNext" VkPhysicalDeviceGroupProperties = Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceGroupProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceGroupProperties =
+             #{offset VkPhysicalDeviceGroupProperties, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceGroupProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceGroupProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceGroupProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceGroupProperties, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceGroupProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceGroupProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceGroupProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "physicalDeviceCount" VkPhysicalDeviceGroupProperties
+         where
+        type FieldType "physicalDeviceCount"
+               VkPhysicalDeviceGroupProperties
+             = Word32
+        type FieldOptional "physicalDeviceCount"
+               VkPhysicalDeviceGroupProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "physicalDeviceCount"
+               VkPhysicalDeviceGroupProperties
+             =
+             #{offset VkPhysicalDeviceGroupProperties, physicalDeviceCount}
+        type FieldIsArray "physicalDeviceCount"
+               VkPhysicalDeviceGroupProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceGroupProperties, physicalDeviceCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "physicalDeviceCount" VkPhysicalDeviceGroupProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceGroupProperties, physicalDeviceCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceGroupProperties, physicalDeviceCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "physicalDeviceCount" VkPhysicalDeviceGroupProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceGroupProperties, physicalDeviceCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "physicalDevices" VkPhysicalDeviceGroupProperties where
+        type FieldType "physicalDevices" VkPhysicalDeviceGroupProperties =
+             VkPhysicalDevice
+        type FieldOptional "physicalDevices"
+               VkPhysicalDeviceGroupProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "physicalDevices" VkPhysicalDeviceGroupProperties
+             =
+             #{offset VkPhysicalDeviceGroupProperties, physicalDevices}
+        type FieldIsArray "physicalDevices" VkPhysicalDeviceGroupProperties
+             = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceGroupProperties, physicalDevices}
+
+instance {-# OVERLAPPING #-}
+         CanReadFieldArray "physicalDevices" VkPhysicalDeviceGroupProperties
+         where
+        type FieldArrayLength "physicalDevices"
+               VkPhysicalDeviceGroupProperties
+             = VK_MAX_DEVICE_GROUP_SIZE
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = VK_MAX_DEVICE_GROUP_SIZE
+
+        {-# INLINE getFieldArrayUnsafe #-}
+        getFieldArrayUnsafe i = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceGroupProperties, physicalDevices}
+                      + sizeOf (undefined :: VkPhysicalDevice) * i
+
+        {-# INLINE readFieldArrayUnsafe #-}
+        readFieldArrayUnsafe i p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceGroupProperties, physicalDevices}
+                 + sizeOf (undefined :: VkPhysicalDevice) * i)
+
+instance {-# OVERLAPPING #-}
+         CanWriteFieldArray "physicalDevices"
+           VkPhysicalDeviceGroupProperties
+         where
+        {-# INLINE writeFieldArrayUnsafe #-}
+        writeFieldArrayUnsafe i p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceGroupProperties, physicalDevices}
+                 + sizeOf (undefined :: VkPhysicalDevice) * i)
+
+instance {-# OVERLAPPING #-}
+         HasField "subsetAllocation" VkPhysicalDeviceGroupProperties where
+        type FieldType "subsetAllocation" VkPhysicalDeviceGroupProperties =
+             VkBool32
+        type FieldOptional "subsetAllocation"
+               VkPhysicalDeviceGroupProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "subsetAllocation" VkPhysicalDeviceGroupProperties
+             =
+             #{offset VkPhysicalDeviceGroupProperties, subsetAllocation}
+        type FieldIsArray "subsetAllocation"
+               VkPhysicalDeviceGroupProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceGroupProperties, subsetAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "subsetAllocation" VkPhysicalDeviceGroupProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceGroupProperties, subsetAllocation})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceGroupProperties, subsetAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "subsetAllocation" VkPhysicalDeviceGroupProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceGroupProperties, subsetAllocation}
+
+instance Show VkPhysicalDeviceGroupProperties where
+        showsPrec d x
+          = showString "VkPhysicalDeviceGroupProperties {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "physicalDeviceCount = " .
+                            showsPrec d (getField @"physicalDeviceCount" x) .
+                              showString ", " .
+                                (showString "physicalDevices = [" .
+                                   showsPrec d
+                                     (let s = sizeOf
+                                                (undefined ::
+                                                   FieldType "physicalDevices"
+                                                     VkPhysicalDeviceGroupProperties)
+                                          o = fieldOffset @"physicalDevices"
+                                                @VkPhysicalDeviceGroupProperties
+                                          f i
+                                            = peekByteOff (unsafePtr x) i ::
+                                                IO
+                                                  (FieldType "physicalDevices"
+                                                     VkPhysicalDeviceGroupProperties)
+                                        in
+                                        unsafeDupablePerformIO . mapM f $
+                                          map (\ i -> o + i * s)
+                                            [0 .. VK_MAX_DEVICE_GROUP_SIZE - 1])
+                                     . showChar ']')
+                                  .
+                                  showString ", " .
+                                    showString "subsetAllocation = " .
+                                      showsPrec d (getField @"subsetAllocation" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceGroupProperties`
+type VkPhysicalDeviceGroupPropertiesKHR =
+     VkPhysicalDeviceGroupProperties
+
+-- | > typedef struct VkPhysicalDeviceIDProperties {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     uint8_t                          deviceUUID[VK_UUID_SIZE];
+--   >     uint8_t                          driverUUID[VK_UUID_SIZE];
+--   >     uint8_t                          deviceLUID[VK_LUID_SIZE];
+--   >     uint32_t                         deviceNodeMask;
+--   >     VkBool32                         deviceLUIDValid;
+--   > } VkPhysicalDeviceIDProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceIDProperties VkPhysicalDeviceIDProperties registry at www.khronos.org>
+type VkPhysicalDeviceIDProperties =
+     VulkanStruct VkPhysicalDeviceIDProperties' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceIDProperties' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceIDProperties where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceIDProperties where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceIDProperties where
+        sizeOf ~_ = #{size VkPhysicalDeviceIDProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceIDProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceIDProperties where
+        type StructFields VkPhysicalDeviceIDProperties =
+             '["sType", "pNext", "deviceUUID", "driverUUID", "deviceLUID", -- ' closing tick for hsc2hs
+               "deviceNodeMask", "deviceLUIDValid"]
+        type CUnionType VkPhysicalDeviceIDProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceIDProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceIDProperties =
+             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceIDProperties where
+        type FieldType "sType" VkPhysicalDeviceIDProperties =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceIDProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceIDProperties =
+             #{offset VkPhysicalDeviceIDProperties, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceIDProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceIDProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceIDProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceIDProperties, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceIDProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceIDProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceIDProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceIDProperties where
+        type FieldType "pNext" VkPhysicalDeviceIDProperties = Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceIDProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceIDProperties =
+             #{offset VkPhysicalDeviceIDProperties, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceIDProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceIDProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceIDProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceIDProperties, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceIDProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceIDProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceIDProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceUUID" VkPhysicalDeviceIDProperties where
+        type FieldType "deviceUUID" VkPhysicalDeviceIDProperties = Word8
+        type FieldOptional "deviceUUID" VkPhysicalDeviceIDProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "deviceUUID" VkPhysicalDeviceIDProperties =
+             #{offset VkPhysicalDeviceIDProperties, deviceUUID}
+        type FieldIsArray "deviceUUID" VkPhysicalDeviceIDProperties = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceIDProperties, deviceUUID}
+
+instance {-# OVERLAPPING #-}
+         CanReadFieldArray "deviceUUID" VkPhysicalDeviceIDProperties where
+        type FieldArrayLength "deviceUUID" VkPhysicalDeviceIDProperties =
+             VK_UUID_SIZE
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = VK_UUID_SIZE
+
+        {-# INLINE getFieldArrayUnsafe #-}
+        getFieldArrayUnsafe i = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceIDProperties, deviceUUID} +
+                      sizeOf (undefined :: Word8) * i
+
+        {-# INLINE readFieldArrayUnsafe #-}
+        readFieldArrayUnsafe i p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceIDProperties, deviceUUID} +
+                 sizeOf (undefined :: Word8) * i)
+
+instance {-# OVERLAPPING #-}
+         CanWriteFieldArray "deviceUUID" VkPhysicalDeviceIDProperties where
+        {-# INLINE writeFieldArrayUnsafe #-}
+        writeFieldArrayUnsafe i p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceIDProperties, deviceUUID} +
+                 sizeOf (undefined :: Word8) * i)
+
+instance {-# OVERLAPPING #-}
+         HasField "driverUUID" VkPhysicalDeviceIDProperties where
+        type FieldType "driverUUID" VkPhysicalDeviceIDProperties = Word8
+        type FieldOptional "driverUUID" VkPhysicalDeviceIDProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "driverUUID" VkPhysicalDeviceIDProperties =
+             #{offset VkPhysicalDeviceIDProperties, driverUUID}
+        type FieldIsArray "driverUUID" VkPhysicalDeviceIDProperties = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceIDProperties, driverUUID}
+
+instance {-# OVERLAPPING #-}
+         CanReadFieldArray "driverUUID" VkPhysicalDeviceIDProperties where
+        type FieldArrayLength "driverUUID" VkPhysicalDeviceIDProperties =
+             VK_UUID_SIZE
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = VK_UUID_SIZE
+
+        {-# INLINE getFieldArrayUnsafe #-}
+        getFieldArrayUnsafe i = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceIDProperties, driverUUID} +
+                      sizeOf (undefined :: Word8) * i
+
+        {-# INLINE readFieldArrayUnsafe #-}
+        readFieldArrayUnsafe i p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceIDProperties, driverUUID} +
+                 sizeOf (undefined :: Word8) * i)
+
+instance {-# OVERLAPPING #-}
+         CanWriteFieldArray "driverUUID" VkPhysicalDeviceIDProperties where
+        {-# INLINE writeFieldArrayUnsafe #-}
+        writeFieldArrayUnsafe i p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceIDProperties, driverUUID} +
+                 sizeOf (undefined :: Word8) * i)
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceLUID" VkPhysicalDeviceIDProperties where
+        type FieldType "deviceLUID" VkPhysicalDeviceIDProperties = Word8
+        type FieldOptional "deviceLUID" VkPhysicalDeviceIDProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "deviceLUID" VkPhysicalDeviceIDProperties =
+             #{offset VkPhysicalDeviceIDProperties, deviceLUID}
+        type FieldIsArray "deviceLUID" VkPhysicalDeviceIDProperties = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceIDProperties, deviceLUID}
+
+instance {-# OVERLAPPING #-}
+         CanReadFieldArray "deviceLUID" VkPhysicalDeviceIDProperties where
+        type FieldArrayLength "deviceLUID" VkPhysicalDeviceIDProperties =
+             VK_LUID_SIZE
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = VK_LUID_SIZE
+
+        {-# INLINE getFieldArrayUnsafe #-}
+        getFieldArrayUnsafe i = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceIDProperties, deviceLUID} +
+                      sizeOf (undefined :: Word8) * i
+
+        {-# INLINE readFieldArrayUnsafe #-}
+        readFieldArrayUnsafe i p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceIDProperties, deviceLUID} +
+                 sizeOf (undefined :: Word8) * i)
+
+instance {-# OVERLAPPING #-}
+         CanWriteFieldArray "deviceLUID" VkPhysicalDeviceIDProperties where
+        {-# INLINE writeFieldArrayUnsafe #-}
+        writeFieldArrayUnsafe i p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceIDProperties, deviceLUID} +
+                 sizeOf (undefined :: Word8) * i)
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceNodeMask" VkPhysicalDeviceIDProperties where
+        type FieldType "deviceNodeMask" VkPhysicalDeviceIDProperties =
+             Word32
+        type FieldOptional "deviceNodeMask" VkPhysicalDeviceIDProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "deviceNodeMask" VkPhysicalDeviceIDProperties =
+             #{offset VkPhysicalDeviceIDProperties, deviceNodeMask}
+        type FieldIsArray "deviceNodeMask" VkPhysicalDeviceIDProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceIDProperties, deviceNodeMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "deviceNodeMask" VkPhysicalDeviceIDProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceIDProperties, deviceNodeMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceIDProperties, deviceNodeMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "deviceNodeMask" VkPhysicalDeviceIDProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceIDProperties, deviceNodeMask}
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceLUIDValid" VkPhysicalDeviceIDProperties where
+        type FieldType "deviceLUIDValid" VkPhysicalDeviceIDProperties =
+             VkBool32
+        type FieldOptional "deviceLUIDValid" VkPhysicalDeviceIDProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "deviceLUIDValid" VkPhysicalDeviceIDProperties =
+             #{offset VkPhysicalDeviceIDProperties, deviceLUIDValid}
+        type FieldIsArray "deviceLUIDValid" VkPhysicalDeviceIDProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceIDProperties, deviceLUIDValid}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "deviceLUIDValid" VkPhysicalDeviceIDProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceIDProperties, deviceLUIDValid})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceIDProperties, deviceLUIDValid}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "deviceLUIDValid" VkPhysicalDeviceIDProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceIDProperties, deviceLUIDValid}
+
+instance Show VkPhysicalDeviceIDProperties where
+        showsPrec d x
+          = showString "VkPhysicalDeviceIDProperties {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          (showString "deviceUUID = [" .
+                             showsPrec d
+                               (let s = sizeOf
+                                          (undefined ::
+                                             FieldType "deviceUUID" VkPhysicalDeviceIDProperties)
+                                    o = fieldOffset @"deviceUUID" @VkPhysicalDeviceIDProperties
+                                    f i
+                                      = peekByteOff (unsafePtr x) i ::
+                                          IO (FieldType "deviceUUID" VkPhysicalDeviceIDProperties)
+                                  in
+                                  unsafeDupablePerformIO . mapM f $
+                                    map (\ i -> o + i * s) [0 .. VK_UUID_SIZE - 1])
+                               . showChar ']')
+                            .
+                            showString ", " .
+                              (showString "driverUUID = [" .
+                                 showsPrec d
+                                   (let s = sizeOf
+                                              (undefined ::
+                                                 FieldType "driverUUID"
+                                                   VkPhysicalDeviceIDProperties)
+                                        o = fieldOffset @"driverUUID" @VkPhysicalDeviceIDProperties
+                                        f i
+                                          = peekByteOff (unsafePtr x) i ::
+                                              IO
+                                                (FieldType "driverUUID"
+                                                   VkPhysicalDeviceIDProperties)
+                                      in
+                                      unsafeDupablePerformIO . mapM f $
+                                        map (\ i -> o + i * s) [0 .. VK_UUID_SIZE - 1])
+                                   . showChar ']')
+                                .
+                                showString ", " .
+                                  (showString "deviceLUID = [" .
+                                     showsPrec d
+                                       (let s = sizeOf
+                                                  (undefined ::
+                                                     FieldType "deviceLUID"
+                                                       VkPhysicalDeviceIDProperties)
+                                            o = fieldOffset @"deviceLUID"
+                                                  @VkPhysicalDeviceIDProperties
+                                            f i
+                                              = peekByteOff (unsafePtr x) i ::
+                                                  IO
+                                                    (FieldType "deviceLUID"
+                                                       VkPhysicalDeviceIDProperties)
+                                          in
+                                          unsafeDupablePerformIO . mapM f $
+                                            map (\ i -> o + i * s) [0 .. VK_LUID_SIZE - 1])
+                                       . showChar ']')
+                                    .
+                                    showString ", " .
+                                      showString "deviceNodeMask = " .
+                                        showsPrec d (getField @"deviceNodeMask" x) .
+                                          showString ", " .
+                                            showString "deviceLUIDValid = " .
+                                              showsPrec d (getField @"deviceLUIDValid" x) .
+                                                showChar '}'
+
+-- | Alias for `VkPhysicalDeviceIDProperties`
+type VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties
+
+-- | > typedef struct VkPhysicalDeviceImageFormatInfo2 {
+--   >     VkStructureType sType;
+--   >     const void* pNext;
+--   >     VkFormat                         format;
+--   >     VkImageType                      type;
+--   >     VkImageTiling                    tiling;
+--   >     VkImageUsageFlags                usage;
+--   >     VkImageCreateFlags flags;
+--   > } VkPhysicalDeviceImageFormatInfo2;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2 registry at www.khronos.org>
+type VkPhysicalDeviceImageFormatInfo2 =
+     VulkanStruct VkPhysicalDeviceImageFormatInfo2' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceImageFormatInfo2' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceImageFormatInfo2 where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceImageFormatInfo2 where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceImageFormatInfo2 where
+        sizeOf ~_ = #{size VkPhysicalDeviceImageFormatInfo2}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceImageFormatInfo2}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceImageFormatInfo2 where
+        type StructFields VkPhysicalDeviceImageFormatInfo2 =
+             '["sType", "pNext", "format", "type", "tiling", "usage", "flags"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceImageFormatInfo2 = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceImageFormatInfo2 where
+        type FieldType "sType" VkPhysicalDeviceImageFormatInfo2 =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceImageFormatInfo2 =
+             #{offset VkPhysicalDeviceImageFormatInfo2, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceImageFormatInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceImageFormatInfo2 where
+        type FieldType "pNext" VkPhysicalDeviceImageFormatInfo2 = Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceImageFormatInfo2 =
+             #{offset VkPhysicalDeviceImageFormatInfo2, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceImageFormatInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "format" VkPhysicalDeviceImageFormatInfo2 where
+        type FieldType "format" VkPhysicalDeviceImageFormatInfo2 = VkFormat
+        type FieldOptional "format" VkPhysicalDeviceImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "format" VkPhysicalDeviceImageFormatInfo2 =
+             #{offset VkPhysicalDeviceImageFormatInfo2, format}
+        type FieldIsArray "format" VkPhysicalDeviceImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceImageFormatInfo2, format}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "format" VkPhysicalDeviceImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, format})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, format}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "format" VkPhysicalDeviceImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, format}
+
+instance {-# OVERLAPPING #-}
+         HasField "type" VkPhysicalDeviceImageFormatInfo2 where
+        type FieldType "type" VkPhysicalDeviceImageFormatInfo2 =
+             VkImageType
+        type FieldOptional "type" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "type" VkPhysicalDeviceImageFormatInfo2 =
+             #{offset VkPhysicalDeviceImageFormatInfo2, type}
+        type FieldIsArray "type" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceImageFormatInfo2, type}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "type" VkPhysicalDeviceImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, type})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, type}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "type" VkPhysicalDeviceImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, type}
+
+instance {-# OVERLAPPING #-}
+         HasField "tiling" VkPhysicalDeviceImageFormatInfo2 where
+        type FieldType "tiling" VkPhysicalDeviceImageFormatInfo2 =
+             VkImageTiling
+        type FieldOptional "tiling" VkPhysicalDeviceImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "tiling" VkPhysicalDeviceImageFormatInfo2 =
+             #{offset VkPhysicalDeviceImageFormatInfo2, tiling}
+        type FieldIsArray "tiling" VkPhysicalDeviceImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceImageFormatInfo2, tiling}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "tiling" VkPhysicalDeviceImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, tiling})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, tiling}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "tiling" VkPhysicalDeviceImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, tiling}
+
+instance {-# OVERLAPPING #-}
+         HasField "usage" VkPhysicalDeviceImageFormatInfo2 where
+        type FieldType "usage" VkPhysicalDeviceImageFormatInfo2 =
+             VkImageUsageFlags
+        type FieldOptional "usage" VkPhysicalDeviceImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "usage" VkPhysicalDeviceImageFormatInfo2 =
+             #{offset VkPhysicalDeviceImageFormatInfo2, usage}
+        type FieldIsArray "usage" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceImageFormatInfo2, usage}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "usage" VkPhysicalDeviceImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, usage})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, usage}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "usage" VkPhysicalDeviceImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, usage}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkPhysicalDeviceImageFormatInfo2 where
+        type FieldType "flags" VkPhysicalDeviceImageFormatInfo2 =
+             VkImageCreateFlags
+        type FieldOptional "flags" VkPhysicalDeviceImageFormatInfo2 = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkPhysicalDeviceImageFormatInfo2 =
+             #{offset VkPhysicalDeviceImageFormatInfo2, flags}
+        type FieldIsArray "flags" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceImageFormatInfo2, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkPhysicalDeviceImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkPhysicalDeviceImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, flags}
+
+instance Show VkPhysicalDeviceImageFormatInfo2 where
+        showsPrec d x
+          = showString "VkPhysicalDeviceImageFormatInfo2 {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "format = " .
+                            showsPrec d (getField @"format" x) .
+                              showString ", " .
+                                showString "type = " .
+                                  showsPrec d (getField @"type" x) .
+                                    showString ", " .
+                                      showString "tiling = " .
+                                        showsPrec d (getField @"tiling" x) .
+                                          showString ", " .
+                                            showString "usage = " .
+                                              showsPrec d (getField @"usage" x) .
+                                                showString ", " .
+                                                  showString "flags = " .
+                                                    showsPrec d (getField @"flags" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceImageFormatInfo2`
+type VkPhysicalDeviceImageFormatInfo2KHR =
+     VkPhysicalDeviceImageFormatInfo2
+
+-- | > typedef struct VkPhysicalDeviceLimits {
+--   >     uint32_t               maxImageDimension1D;
+--   >     uint32_t               maxImageDimension2D;
+--   >     uint32_t               maxImageDimension3D;
+--   >     uint32_t               maxImageDimensionCube;
+--   >     uint32_t               maxImageArrayLayers;
+--   >     uint32_t               maxTexelBufferElements;
+--   >     uint32_t               maxUniformBufferRange;
+--   >     uint32_t               maxStorageBufferRange;
+--   >     uint32_t               maxPushConstantsSize;
+--   >     uint32_t               maxMemoryAllocationCount;
+--   >     uint32_t               maxSamplerAllocationCount;
+--   >     VkDeviceSize           bufferImageGranularity;
+--   >     VkDeviceSize           sparseAddressSpaceSize;
+--   >     uint32_t               maxBoundDescriptorSets;
+--   >     uint32_t               maxPerStageDescriptorSamplers;
+--   >     uint32_t               maxPerStageDescriptorUniformBuffers;
+--   >     uint32_t               maxPerStageDescriptorStorageBuffers;
+--   >     uint32_t               maxPerStageDescriptorSampledImages;
+--   >     uint32_t               maxPerStageDescriptorStorageImages;
+--   >     uint32_t               maxPerStageDescriptorInputAttachments;
+--   >     uint32_t               maxPerStageResources;
+--   >     uint32_t               maxDescriptorSetSamplers;
+--   >     uint32_t               maxDescriptorSetUniformBuffers;
+--   >     uint32_t               maxDescriptorSetUniformBuffersDynamic;
+--   >     uint32_t               maxDescriptorSetStorageBuffers;
+--   >     uint32_t               maxDescriptorSetStorageBuffersDynamic;
+--   >     uint32_t               maxDescriptorSetSampledImages;
+--   >     uint32_t               maxDescriptorSetStorageImages;
+--   >     uint32_t               maxDescriptorSetInputAttachments;
+--   >     uint32_t               maxVertexInputAttributes;
+--   >     uint32_t               maxVertexInputBindings;
+--   >     uint32_t               maxVertexInputAttributeOffset;
+--   >     uint32_t               maxVertexInputBindingStride;
+--   >     uint32_t               maxVertexOutputComponents;
+--   >     uint32_t               maxTessellationGenerationLevel;
+--   >     uint32_t               maxTessellationPatchSize;
+--   >     uint32_t               maxTessellationControlPerVertexInputComponents;
+--   >     uint32_t               maxTessellationControlPerVertexOutputComponents;
+--   >     uint32_t               maxTessellationControlPerPatchOutputComponents;
+--   >     uint32_t               maxTessellationControlTotalOutputComponents;
+--   >     uint32_t               maxTessellationEvaluationInputComponents;
+--   >     uint32_t               maxTessellationEvaluationOutputComponents;
+--   >     uint32_t               maxGeometryShaderInvocations;
+--   >     uint32_t               maxGeometryInputComponents;
+--   >     uint32_t               maxGeometryOutputComponents;
+--   >     uint32_t               maxGeometryOutputVertices;
+--   >     uint32_t               maxGeometryTotalOutputComponents;
+--   >     uint32_t               maxFragmentInputComponents;
+--   >     uint32_t               maxFragmentOutputAttachments;
+--   >     uint32_t               maxFragmentDualSrcAttachments;
+--   >     uint32_t               maxFragmentCombinedOutputResources;
+--   >     uint32_t               maxComputeSharedMemorySize;
+--   >     uint32_t               maxComputeWorkGroupCount[3];
+--   >     uint32_t               maxComputeWorkGroupInvocations;
+--   >     uint32_t               maxComputeWorkGroupSize[3];
+--   >     uint32_t               subPixelPrecisionBits;
+--   >     uint32_t               subTexelPrecisionBits;
+--   >     uint32_t               mipmapPrecisionBits;
+--   >     uint32_t               maxDrawIndexedIndexValue;
+--   >     uint32_t               maxDrawIndirectCount;
+--   >     float                  maxSamplerLodBias;
+--   >     float                  maxSamplerAnisotropy;
+--   >     uint32_t               maxViewports;
+--   >     uint32_t               maxViewportDimensions[2];
+--   >     float                  viewportBoundsRange[2];
+--   >     uint32_t               viewportSubPixelBits;
+--   >     size_t                 minMemoryMapAlignment;
+--   >     VkDeviceSize           minTexelBufferOffsetAlignment;
+--   >     VkDeviceSize           minUniformBufferOffsetAlignment;
+--   >     VkDeviceSize           minStorageBufferOffsetAlignment;
+--   >     int32_t                minTexelOffset;
+--   >     uint32_t               maxTexelOffset;
+--   >     int32_t                minTexelGatherOffset;
+--   >     uint32_t               maxTexelGatherOffset;
+--   >     float                  minInterpolationOffset;
+--   >     float                  maxInterpolationOffset;
+--   >     uint32_t               subPixelInterpolationOffsetBits;
+--   >     uint32_t               maxFramebufferWidth;
+--   >     uint32_t               maxFramebufferHeight;
+--   >     uint32_t               maxFramebufferLayers;
+--   >     VkSampleCountFlags     framebufferColorSampleCounts;
+--   >     VkSampleCountFlags     framebufferDepthSampleCounts;
+--   >     VkSampleCountFlags     framebufferStencilSampleCounts;
+--   >     VkSampleCountFlags     framebufferNoAttachmentsSampleCounts;
+--   >     uint32_t               maxColorAttachments;
+--   >     VkSampleCountFlags     sampledImageColorSampleCounts;
+--   >     VkSampleCountFlags     sampledImageIntegerSampleCounts;
+--   >     VkSampleCountFlags     sampledImageDepthSampleCounts;
+--   >     VkSampleCountFlags     sampledImageStencilSampleCounts;
+--   >     VkSampleCountFlags     storageImageSampleCounts;
+--   >     uint32_t               maxSampleMaskWords;
+--   >     VkBool32               timestampComputeAndGraphics;
+--   >     float                  timestampPeriod;
+--   >     uint32_t               maxClipDistances;
+--   >     uint32_t               maxCullDistances;
+--   >     uint32_t               maxCombinedClipAndCullDistances;
+--   >     uint32_t               discreteQueuePriorities;
+--   >     float                  pointSizeRange[2];
+--   >     float                  lineWidthRange[2];
+--   >     float                  pointSizeGranularity;
+--   >     float                  lineWidthGranularity;
+--   >     VkBool32               strictLines;
+--   >     VkBool32               standardSampleLocations;
+--   >     VkDeviceSize           optimalBufferCopyOffsetAlignment;
+--   >     VkDeviceSize           optimalBufferCopyRowPitchAlignment;
+--   >     VkDeviceSize           nonCoherentAtomSize;
+--   > } VkPhysicalDeviceLimits;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceLimits VkPhysicalDeviceLimits registry at www.khronos.org>
+type VkPhysicalDeviceLimits = VulkanStruct VkPhysicalDeviceLimits' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceLimits' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceLimits where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceLimits where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceLimits where
+        sizeOf ~_ = #{size VkPhysicalDeviceLimits}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkPhysicalDeviceLimits}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceLimits where
+        type StructFields VkPhysicalDeviceLimits =
+             '["maxImageDimension1D", "maxImageDimension2D", -- ' closing tick for hsc2hs
+               "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",
+               "maxComputeWorkGroupCount", "maxComputeWorkGroupInvocations",
+               "maxComputeWorkGroupSize", "subPixelPrecisionBits",
+               "subTexelPrecisionBits", "mipmapPrecisionBits",
+               "maxDrawIndexedIndexValue", "maxDrawIndirectCount",
+               "maxSamplerLodBias", "maxSamplerAnisotropy", "maxViewports",
+               "maxViewportDimensions", "viewportBoundsRange",
+               "viewportSubPixelBits", "minMemoryMapAlignment",
+               "minTexelBufferOffsetAlignment", "minUniformBufferOffsetAlignment",
+               "minStorageBufferOffsetAlignment", "minTexelOffset",
+               "maxTexelOffset", "minTexelGatherOffset", "maxTexelGatherOffset",
+               "minInterpolationOffset", "maxInterpolationOffset",
+               "subPixelInterpolationOffsetBits", "maxFramebufferWidth",
+               "maxFramebufferHeight", "maxFramebufferLayers",
+               "framebufferColorSampleCounts", "framebufferDepthSampleCounts",
+               "framebufferStencilSampleCounts",
+               "framebufferNoAttachmentsSampleCounts", "maxColorAttachments",
+               "sampledImageColorSampleCounts", "sampledImageIntegerSampleCounts",
+               "sampledImageDepthSampleCounts", "sampledImageStencilSampleCounts",
+               "storageImageSampleCounts", "maxSampleMaskWords",
+               "timestampComputeAndGraphics", "timestampPeriod",
+               "maxClipDistances", "maxCullDistances",
+               "maxCombinedClipAndCullDistances", "discreteQueuePriorities",
+               "pointSizeRange", "lineWidthRange", "pointSizeGranularity",
+               "lineWidthGranularity", "strictLines", "standardSampleLocations",
+               "optimalBufferCopyOffsetAlignment",
+               "optimalBufferCopyRowPitchAlignment", "nonCoherentAtomSize"]
+        type CUnionType VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceLimits = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceLimits = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "maxImageDimension1D" VkPhysicalDeviceLimits where
+        type FieldType "maxImageDimension1D" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxImageDimension1D" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxImageDimension1D" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxImageDimension1D}
+        type FieldIsArray "maxImageDimension1D" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxImageDimension1D}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxImageDimension1D" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxImageDimension1D})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension1D}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxImageDimension1D" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension1D}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxImageDimension2D" VkPhysicalDeviceLimits where
+        type FieldType "maxImageDimension2D" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxImageDimension2D" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxImageDimension2D" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxImageDimension2D}
+        type FieldIsArray "maxImageDimension2D" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxImageDimension2D}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxImageDimension2D" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxImageDimension2D})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension2D}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxImageDimension2D" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension2D}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxImageDimension3D" VkPhysicalDeviceLimits where
+        type FieldType "maxImageDimension3D" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxImageDimension3D" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxImageDimension3D" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxImageDimension3D}
+        type FieldIsArray "maxImageDimension3D" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxImageDimension3D}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxImageDimension3D" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxImageDimension3D})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension3D}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxImageDimension3D" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension3D}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxImageDimensionCube" VkPhysicalDeviceLimits where
+        type FieldType "maxImageDimensionCube" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxImageDimensionCube" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxImageDimensionCube" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxImageDimensionCube}
+        type FieldIsArray "maxImageDimensionCube" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxImageDimensionCube}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxImageDimensionCube" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxImageDimensionCube})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimensionCube}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxImageDimensionCube" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimensionCube}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxImageArrayLayers" VkPhysicalDeviceLimits where
+        type FieldType "maxImageArrayLayers" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxImageArrayLayers" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxImageArrayLayers" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxImageArrayLayers}
+        type FieldIsArray "maxImageArrayLayers" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxImageArrayLayers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxImageArrayLayers" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxImageArrayLayers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxImageArrayLayers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxImageArrayLayers" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxImageArrayLayers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTexelBufferElements" VkPhysicalDeviceLimits where
+        type FieldType "maxTexelBufferElements" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxTexelBufferElements" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTexelBufferElements" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxTexelBufferElements}
+        type FieldIsArray "maxTexelBufferElements" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTexelBufferElements}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTexelBufferElements" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTexelBufferElements})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTexelBufferElements}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTexelBufferElements" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTexelBufferElements}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxUniformBufferRange" VkPhysicalDeviceLimits where
+        type FieldType "maxUniformBufferRange" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxUniformBufferRange" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxUniformBufferRange" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxUniformBufferRange}
+        type FieldIsArray "maxUniformBufferRange" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxUniformBufferRange}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxUniformBufferRange" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxUniformBufferRange})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxUniformBufferRange}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxUniformBufferRange" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxUniformBufferRange}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxStorageBufferRange" VkPhysicalDeviceLimits where
+        type FieldType "maxStorageBufferRange" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxStorageBufferRange" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxStorageBufferRange" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxStorageBufferRange}
+        type FieldIsArray "maxStorageBufferRange" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxStorageBufferRange}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxStorageBufferRange" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxStorageBufferRange})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxStorageBufferRange}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxStorageBufferRange" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxStorageBufferRange}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPushConstantsSize" VkPhysicalDeviceLimits where
+        type FieldType "maxPushConstantsSize" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxPushConstantsSize" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPushConstantsSize" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxPushConstantsSize}
+        type FieldIsArray "maxPushConstantsSize" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxPushConstantsSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPushConstantsSize" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPushConstantsSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPushConstantsSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPushConstantsSize" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPushConstantsSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxMemoryAllocationCount" VkPhysicalDeviceLimits where
+        type FieldType "maxMemoryAllocationCount" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxMemoryAllocationCount"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxMemoryAllocationCount" VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxMemoryAllocationCount}
+        type FieldIsArray "maxMemoryAllocationCount" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxMemoryAllocationCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxMemoryAllocationCount" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxMemoryAllocationCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxMemoryAllocationCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxMemoryAllocationCount" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxMemoryAllocationCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxSamplerAllocationCount" VkPhysicalDeviceLimits where
+        type FieldType "maxSamplerAllocationCount" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxSamplerAllocationCount"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxSamplerAllocationCount" VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxSamplerAllocationCount}
+        type FieldIsArray "maxSamplerAllocationCount"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxSamplerAllocationCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxSamplerAllocationCount" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxSamplerAllocationCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerAllocationCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxSamplerAllocationCount" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerAllocationCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "bufferImageGranularity" VkPhysicalDeviceLimits where
+        type FieldType "bufferImageGranularity" VkPhysicalDeviceLimits =
+             VkDeviceSize
+        type FieldOptional "bufferImageGranularity" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "bufferImageGranularity" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, bufferImageGranularity}
+        type FieldIsArray "bufferImageGranularity" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, bufferImageGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "bufferImageGranularity" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, bufferImageGranularity})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, bufferImageGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "bufferImageGranularity" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, bufferImageGranularity}
+
+instance {-# OVERLAPPING #-}
+         HasField "sparseAddressSpaceSize" VkPhysicalDeviceLimits where
+        type FieldType "sparseAddressSpaceSize" VkPhysicalDeviceLimits =
+             VkDeviceSize
+        type FieldOptional "sparseAddressSpaceSize" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sparseAddressSpaceSize" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, sparseAddressSpaceSize}
+        type FieldIsArray "sparseAddressSpaceSize" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, sparseAddressSpaceSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sparseAddressSpaceSize" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, sparseAddressSpaceSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, sparseAddressSpaceSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sparseAddressSpaceSize" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, sparseAddressSpaceSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxBoundDescriptorSets" VkPhysicalDeviceLimits where
+        type FieldType "maxBoundDescriptorSets" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxBoundDescriptorSets" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxBoundDescriptorSets" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxBoundDescriptorSets}
+        type FieldIsArray "maxBoundDescriptorSets" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxBoundDescriptorSets}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxBoundDescriptorSets" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxBoundDescriptorSets})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxBoundDescriptorSets}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxBoundDescriptorSets" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxBoundDescriptorSets}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorSamplers" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxPerStageDescriptorSamplers"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxPerStageDescriptorSamplers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPerStageDescriptorSamplers"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers}
+        type FieldIsArray "maxPerStageDescriptorSamplers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorSamplers" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorSamplers"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorUniformBuffers"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxPerStageDescriptorUniformBuffers"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxPerStageDescriptorUniformBuffers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPerStageDescriptorUniformBuffers"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers}
+        type FieldIsArray "maxPerStageDescriptorUniformBuffers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorUniformBuffers"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorUniformBuffers"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorStorageBuffers"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxPerStageDescriptorStorageBuffers"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxPerStageDescriptorStorageBuffers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPerStageDescriptorStorageBuffers"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers}
+        type FieldIsArray "maxPerStageDescriptorStorageBuffers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorStorageBuffers"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorStorageBuffers"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorSampledImages"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxPerStageDescriptorSampledImages"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxPerStageDescriptorSampledImages"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPerStageDescriptorSampledImages"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages}
+        type FieldIsArray "maxPerStageDescriptorSampledImages"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorSampledImages"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorSampledImages"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorStorageImages"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxPerStageDescriptorStorageImages"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxPerStageDescriptorStorageImages"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPerStageDescriptorStorageImages"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages}
+        type FieldIsArray "maxPerStageDescriptorStorageImages"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorStorageImages"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorStorageImages"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorInputAttachments"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxPerStageDescriptorInputAttachments"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxPerStageDescriptorInputAttachments"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPerStageDescriptorInputAttachments"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments}
+        type FieldIsArray "maxPerStageDescriptorInputAttachments"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorInputAttachments"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorInputAttachments"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageResources" VkPhysicalDeviceLimits where
+        type FieldType "maxPerStageResources" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxPerStageResources" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPerStageResources" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxPerStageResources}
+        type FieldIsArray "maxPerStageResources" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxPerStageResources}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageResources" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageResources})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageResources}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageResources" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageResources}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetSamplers" VkPhysicalDeviceLimits where
+        type FieldType "maxDescriptorSetSamplers" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxDescriptorSetSamplers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetSamplers" VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxDescriptorSetSamplers}
+        type FieldIsArray "maxDescriptorSetSamplers" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetSamplers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetSamplers" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetSamplers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetSamplers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetSamplers" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetSamplers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetUniformBuffers" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxDescriptorSetUniformBuffers"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxDescriptorSetUniformBuffers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetUniformBuffers"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers}
+        type FieldIsArray "maxDescriptorSetUniformBuffers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetUniformBuffers"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetUniformBuffers"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetUniformBuffersDynamic"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxDescriptorSetUniformBuffersDynamic"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxDescriptorSetUniformBuffersDynamic"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetUniformBuffersDynamic"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic}
+        type FieldIsArray "maxDescriptorSetUniformBuffersDynamic"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetUniformBuffersDynamic"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetUniformBuffersDynamic"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetStorageBuffers" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxDescriptorSetStorageBuffers"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxDescriptorSetStorageBuffers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetStorageBuffers"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers}
+        type FieldIsArray "maxDescriptorSetStorageBuffers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetStorageBuffers"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetStorageBuffers"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetStorageBuffersDynamic"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxDescriptorSetStorageBuffersDynamic"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxDescriptorSetStorageBuffersDynamic"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetStorageBuffersDynamic"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic}
+        type FieldIsArray "maxDescriptorSetStorageBuffersDynamic"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetStorageBuffersDynamic"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetStorageBuffersDynamic"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetSampledImages" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxDescriptorSetSampledImages"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxDescriptorSetSampledImages"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetSampledImages"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxDescriptorSetSampledImages}
+        type FieldIsArray "maxDescriptorSetSampledImages"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetSampledImages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetSampledImages" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetSampledImages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetSampledImages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetSampledImages"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetSampledImages}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetStorageImages" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxDescriptorSetStorageImages"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxDescriptorSetStorageImages"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetStorageImages"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageImages}
+        type FieldIsArray "maxDescriptorSetStorageImages"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageImages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetStorageImages" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageImages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageImages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetStorageImages"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageImages}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetInputAttachments" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxDescriptorSetInputAttachments"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxDescriptorSetInputAttachments"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetInputAttachments"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments}
+        type FieldIsArray "maxDescriptorSetInputAttachments"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetInputAttachments"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetInputAttachments"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxVertexInputAttributes" VkPhysicalDeviceLimits where
+        type FieldType "maxVertexInputAttributes" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxVertexInputAttributes"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxVertexInputAttributes" VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxVertexInputAttributes}
+        type FieldIsArray "maxVertexInputAttributes" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxVertexInputAttributes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxVertexInputAttributes" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxVertexInputAttributes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputAttributes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxVertexInputAttributes" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputAttributes}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxVertexInputBindings" VkPhysicalDeviceLimits where
+        type FieldType "maxVertexInputBindings" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxVertexInputBindings" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxVertexInputBindings" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxVertexInputBindings}
+        type FieldIsArray "maxVertexInputBindings" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxVertexInputBindings}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxVertexInputBindings" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxVertexInputBindings})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputBindings}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxVertexInputBindings" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputBindings}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxVertexInputAttributeOffset" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxVertexInputAttributeOffset"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxVertexInputAttributeOffset"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxVertexInputAttributeOffset"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxVertexInputAttributeOffset}
+        type FieldIsArray "maxVertexInputAttributeOffset"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxVertexInputAttributeOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxVertexInputAttributeOffset" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxVertexInputAttributeOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputAttributeOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxVertexInputAttributeOffset"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputAttributeOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxVertexInputBindingStride" VkPhysicalDeviceLimits where
+        type FieldType "maxVertexInputBindingStride" VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxVertexInputBindingStride"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxVertexInputBindingStride"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxVertexInputBindingStride}
+        type FieldIsArray "maxVertexInputBindingStride"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxVertexInputBindingStride}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxVertexInputBindingStride" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxVertexInputBindingStride})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputBindingStride}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxVertexInputBindingStride" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputBindingStride}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxVertexOutputComponents" VkPhysicalDeviceLimits where
+        type FieldType "maxVertexOutputComponents" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxVertexOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxVertexOutputComponents" VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxVertexOutputComponents}
+        type FieldIsArray "maxVertexOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxVertexOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxVertexOutputComponents" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxVertexOutputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxVertexOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxVertexOutputComponents" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxVertexOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTessellationGenerationLevel" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxTessellationGenerationLevel"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxTessellationGenerationLevel"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTessellationGenerationLevel"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxTessellationGenerationLevel}
+        type FieldIsArray "maxTessellationGenerationLevel"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTessellationGenerationLevel}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTessellationGenerationLevel"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationGenerationLevel})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationGenerationLevel}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTessellationGenerationLevel"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationGenerationLevel}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTessellationPatchSize" VkPhysicalDeviceLimits where
+        type FieldType "maxTessellationPatchSize" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxTessellationPatchSize"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTessellationPatchSize" VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxTessellationPatchSize}
+        type FieldIsArray "maxTessellationPatchSize" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTessellationPatchSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTessellationPatchSize" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationPatchSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationPatchSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTessellationPatchSize" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationPatchSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTessellationControlPerVertexInputComponents"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxTessellationControlPerVertexInputComponents"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxTessellationControlPerVertexInputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTessellationControlPerVertexInputComponents"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents}
+        type FieldIsArray "maxTessellationControlPerVertexInputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTessellationControlPerVertexInputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTessellationControlPerVertexInputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTessellationControlPerVertexOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxTessellationControlPerVertexOutputComponents"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional
+               "maxTessellationControlPerVertexOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTessellationControlPerVertexOutputComponents"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents}
+        type FieldIsArray "maxTessellationControlPerVertexOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTessellationControlPerVertexOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTessellationControlPerVertexOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTessellationControlPerPatchOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxTessellationControlPerPatchOutputComponents"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxTessellationControlPerPatchOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTessellationControlPerPatchOutputComponents"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents}
+        type FieldIsArray "maxTessellationControlPerPatchOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTessellationControlPerPatchOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTessellationControlPerPatchOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTessellationControlTotalOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxTessellationControlTotalOutputComponents"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxTessellationControlTotalOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTessellationControlTotalOutputComponents"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents}
+        type FieldIsArray "maxTessellationControlTotalOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTessellationControlTotalOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTessellationControlTotalOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTessellationEvaluationInputComponents"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxTessellationEvaluationInputComponents"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxTessellationEvaluationInputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTessellationEvaluationInputComponents"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents}
+        type FieldIsArray "maxTessellationEvaluationInputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTessellationEvaluationInputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTessellationEvaluationInputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTessellationEvaluationOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxTessellationEvaluationOutputComponents"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxTessellationEvaluationOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTessellationEvaluationOutputComponents"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents}
+        type FieldIsArray "maxTessellationEvaluationOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTessellationEvaluationOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTessellationEvaluationOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxGeometryShaderInvocations" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxGeometryShaderInvocations"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxGeometryShaderInvocations"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxGeometryShaderInvocations"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxGeometryShaderInvocations}
+        type FieldIsArray "maxGeometryShaderInvocations"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxGeometryShaderInvocations}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxGeometryShaderInvocations" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxGeometryShaderInvocations})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryShaderInvocations}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxGeometryShaderInvocations" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryShaderInvocations}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxGeometryInputComponents" VkPhysicalDeviceLimits where
+        type FieldType "maxGeometryInputComponents" VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxGeometryInputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxGeometryInputComponents"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxGeometryInputComponents}
+        type FieldIsArray "maxGeometryInputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxGeometryInputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxGeometryInputComponents" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxGeometryInputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryInputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxGeometryInputComponents" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryInputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxGeometryOutputComponents" VkPhysicalDeviceLimits where
+        type FieldType "maxGeometryOutputComponents" VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxGeometryOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxGeometryOutputComponents"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxGeometryOutputComponents}
+        type FieldIsArray "maxGeometryOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxGeometryOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxGeometryOutputComponents" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxGeometryOutputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxGeometryOutputComponents" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxGeometryOutputVertices" VkPhysicalDeviceLimits where
+        type FieldType "maxGeometryOutputVertices" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxGeometryOutputVertices"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxGeometryOutputVertices" VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxGeometryOutputVertices}
+        type FieldIsArray "maxGeometryOutputVertices"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxGeometryOutputVertices}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxGeometryOutputVertices" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxGeometryOutputVertices})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryOutputVertices}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxGeometryOutputVertices" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryOutputVertices}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxGeometryTotalOutputComponents" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxGeometryTotalOutputComponents"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxGeometryTotalOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxGeometryTotalOutputComponents"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents}
+        type FieldIsArray "maxGeometryTotalOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxGeometryTotalOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxGeometryTotalOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxFragmentInputComponents" VkPhysicalDeviceLimits where
+        type FieldType "maxFragmentInputComponents" VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxFragmentInputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxFragmentInputComponents"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxFragmentInputComponents}
+        type FieldIsArray "maxFragmentInputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxFragmentInputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxFragmentInputComponents" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFragmentInputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentInputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxFragmentInputComponents" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentInputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxFragmentOutputAttachments" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxFragmentOutputAttachments"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxFragmentOutputAttachments"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxFragmentOutputAttachments"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxFragmentOutputAttachments}
+        type FieldIsArray "maxFragmentOutputAttachments"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxFragmentOutputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxFragmentOutputAttachments" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFragmentOutputAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentOutputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxFragmentOutputAttachments" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentOutputAttachments}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxFragmentDualSrcAttachments" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxFragmentDualSrcAttachments"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxFragmentDualSrcAttachments"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxFragmentDualSrcAttachments"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments}
+        type FieldIsArray "maxFragmentDualSrcAttachments"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxFragmentDualSrcAttachments" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxFragmentDualSrcAttachments"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxFragmentCombinedOutputResources"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxFragmentCombinedOutputResources"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxFragmentCombinedOutputResources"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxFragmentCombinedOutputResources"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources}
+        type FieldIsArray "maxFragmentCombinedOutputResources"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxFragmentCombinedOutputResources"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxFragmentCombinedOutputResources"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxComputeSharedMemorySize" VkPhysicalDeviceLimits where
+        type FieldType "maxComputeSharedMemorySize" VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxComputeSharedMemorySize"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxComputeSharedMemorySize"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxComputeSharedMemorySize}
+        type FieldIsArray "maxComputeSharedMemorySize"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxComputeSharedMemorySize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxComputeSharedMemorySize" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxComputeSharedMemorySize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxComputeSharedMemorySize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxComputeSharedMemorySize" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxComputeSharedMemorySize}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxComputeWorkGroupCount" VkPhysicalDeviceLimits where
+        type FieldType "maxComputeWorkGroupCount" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxComputeWorkGroupCount"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxComputeWorkGroupCount" VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}
+        type FieldIsArray "maxComputeWorkGroupCount" VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadFieldArray "maxComputeWorkGroupCount" VkPhysicalDeviceLimits
+         where
+        type FieldArrayLength "maxComputeWorkGroupCount"
+               VkPhysicalDeviceLimits
+             = 3
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 3
+
+        {-# INLINE getFieldArrayUnsafe #-}
+        getFieldArrayUnsafe i = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}
+                      + sizeOf (undefined :: Word32) * i
+
+        {-# INLINE readFieldArrayUnsafe #-}
+        readFieldArrayUnsafe i p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}
+                 + sizeOf (undefined :: Word32) * i)
+
+instance {-# OVERLAPPING #-}
+         CanWriteFieldArray "maxComputeWorkGroupCount"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeFieldArrayUnsafe #-}
+        writeFieldArrayUnsafe i p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}
+                 + sizeOf (undefined :: Word32) * i)
+
+instance {-# OVERLAPPING #-}
+         HasField "maxComputeWorkGroupInvocations" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxComputeWorkGroupInvocations"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxComputeWorkGroupInvocations"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxComputeWorkGroupInvocations"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations}
+        type FieldIsArray "maxComputeWorkGroupInvocations"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxComputeWorkGroupInvocations"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxComputeWorkGroupInvocations"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxComputeWorkGroupSize" VkPhysicalDeviceLimits where
+        type FieldType "maxComputeWorkGroupSize" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxComputeWorkGroupSize" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxComputeWorkGroupSize" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}
+        type FieldIsArray "maxComputeWorkGroupSize" VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadFieldArray "maxComputeWorkGroupSize" VkPhysicalDeviceLimits
+         where
+        type FieldArrayLength "maxComputeWorkGroupSize"
+               VkPhysicalDeviceLimits
+             = 3
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 3
+
+        {-# INLINE getFieldArrayUnsafe #-}
+        getFieldArrayUnsafe i = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}
+                      + sizeOf (undefined :: Word32) * i
+
+        {-# INLINE readFieldArrayUnsafe #-}
+        readFieldArrayUnsafe i p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}
+                 + sizeOf (undefined :: Word32) * i)
+
+instance {-# OVERLAPPING #-}
+         CanWriteFieldArray "maxComputeWorkGroupSize" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeFieldArrayUnsafe #-}
+        writeFieldArrayUnsafe i p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}
+                 + sizeOf (undefined :: Word32) * i)
+
+instance {-# OVERLAPPING #-}
+         HasField "subPixelPrecisionBits" VkPhysicalDeviceLimits where
+        type FieldType "subPixelPrecisionBits" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "subPixelPrecisionBits" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "subPixelPrecisionBits" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, subPixelPrecisionBits}
+        type FieldIsArray "subPixelPrecisionBits" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, subPixelPrecisionBits}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "subPixelPrecisionBits" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, subPixelPrecisionBits})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, subPixelPrecisionBits}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "subPixelPrecisionBits" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, subPixelPrecisionBits}
+
+instance {-# OVERLAPPING #-}
+         HasField "subTexelPrecisionBits" VkPhysicalDeviceLimits where
+        type FieldType "subTexelPrecisionBits" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "subTexelPrecisionBits" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "subTexelPrecisionBits" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, subTexelPrecisionBits}
+        type FieldIsArray "subTexelPrecisionBits" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, subTexelPrecisionBits}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "subTexelPrecisionBits" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, subTexelPrecisionBits})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, subTexelPrecisionBits}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "subTexelPrecisionBits" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, subTexelPrecisionBits}
+
+instance {-# OVERLAPPING #-}
+         HasField "mipmapPrecisionBits" VkPhysicalDeviceLimits where
+        type FieldType "mipmapPrecisionBits" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "mipmapPrecisionBits" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "mipmapPrecisionBits" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, mipmapPrecisionBits}
+        type FieldIsArray "mipmapPrecisionBits" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, mipmapPrecisionBits}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "mipmapPrecisionBits" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, mipmapPrecisionBits})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, mipmapPrecisionBits}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "mipmapPrecisionBits" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, mipmapPrecisionBits}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits where
+        type FieldType "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxDrawIndexedIndexValue"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxDrawIndexedIndexValue}
+        type FieldIsArray "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxDrawIndexedIndexValue}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDrawIndexedIndexValue})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDrawIndexedIndexValue}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDrawIndexedIndexValue}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDrawIndirectCount" VkPhysicalDeviceLimits where
+        type FieldType "maxDrawIndirectCount" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxDrawIndirectCount" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDrawIndirectCount" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxDrawIndirectCount}
+        type FieldIsArray "maxDrawIndirectCount" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxDrawIndirectCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDrawIndirectCount" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDrawIndirectCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDrawIndirectCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDrawIndirectCount" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDrawIndirectCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxSamplerLodBias" VkPhysicalDeviceLimits where
+        type FieldType "maxSamplerLodBias" VkPhysicalDeviceLimits =
+             #{type float}
+        type FieldOptional "maxSamplerLodBias" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxSamplerLodBias" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxSamplerLodBias}
+        type FieldIsArray "maxSamplerLodBias" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxSamplerLodBias}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxSamplerLodBias" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxSamplerLodBias})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerLodBias}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxSamplerLodBias" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerLodBias}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxSamplerAnisotropy" VkPhysicalDeviceLimits where
+        type FieldType "maxSamplerAnisotropy" VkPhysicalDeviceLimits =
+             #{type float}
+        type FieldOptional "maxSamplerAnisotropy" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxSamplerAnisotropy" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxSamplerAnisotropy}
+        type FieldIsArray "maxSamplerAnisotropy" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxSamplerAnisotropy}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxSamplerAnisotropy" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxSamplerAnisotropy})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerAnisotropy}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxSamplerAnisotropy" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerAnisotropy}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxViewports" VkPhysicalDeviceLimits where
+        type FieldType "maxViewports" VkPhysicalDeviceLimits = Word32
+        type FieldOptional "maxViewports" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxViewports" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxViewports}
+        type FieldIsArray "maxViewports" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxViewports}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxViewports" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxViewports})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxViewports}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxViewports" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxViewports}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxViewportDimensions" VkPhysicalDeviceLimits where
+        type FieldType "maxViewportDimensions" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxViewportDimensions" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxViewportDimensions" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxViewportDimensions}
+        type FieldIsArray "maxViewportDimensions" VkPhysicalDeviceLimits =
+             'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxViewportDimensions}
+
+instance {-# OVERLAPPING #-}
+         CanReadFieldArray "maxViewportDimensions" VkPhysicalDeviceLimits
+         where
+        type FieldArrayLength "maxViewportDimensions"
+               VkPhysicalDeviceLimits
+             = 2
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 2
+
+        {-# INLINE getFieldArrayUnsafe #-}
+        getFieldArrayUnsafe i = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceLimits, maxViewportDimensions}
+                      + sizeOf (undefined :: Word32) * i
+
+        {-# INLINE readFieldArrayUnsafe #-}
+        readFieldArrayUnsafe i p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceLimits, maxViewportDimensions}
+                 + sizeOf (undefined :: Word32) * i)
+
+instance {-# OVERLAPPING #-}
+         CanWriteFieldArray "maxViewportDimensions" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeFieldArrayUnsafe #-}
+        writeFieldArrayUnsafe i p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceLimits, maxViewportDimensions}
+                 + sizeOf (undefined :: Word32) * i)
+
+instance {-# OVERLAPPING #-}
+         HasField "viewportBoundsRange" VkPhysicalDeviceLimits where
+        type FieldType "viewportBoundsRange" VkPhysicalDeviceLimits =
+             #{type float}
+        type FieldOptional "viewportBoundsRange" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "viewportBoundsRange" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, viewportBoundsRange}
+        type FieldIsArray "viewportBoundsRange" VkPhysicalDeviceLimits =
+             'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, viewportBoundsRange}
+
+instance {-# OVERLAPPING #-}
+         CanReadFieldArray "viewportBoundsRange" VkPhysicalDeviceLimits
+         where
+        type FieldArrayLength "viewportBoundsRange" VkPhysicalDeviceLimits
+             = 2
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 2
+
+        {-# INLINE getFieldArrayUnsafe #-}
+        getFieldArrayUnsafe i = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceLimits, viewportBoundsRange}
+                      + sizeOf (undefined :: #{type float}) * i
+
+        {-# INLINE readFieldArrayUnsafe #-}
+        readFieldArrayUnsafe i p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceLimits, viewportBoundsRange}
+                 + sizeOf (undefined :: #{type float}) * i)
+
+instance {-# OVERLAPPING #-}
+         CanWriteFieldArray "viewportBoundsRange" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeFieldArrayUnsafe #-}
+        writeFieldArrayUnsafe i p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceLimits, viewportBoundsRange}
+                 + sizeOf (undefined :: #{type float}) * i)
+
+instance {-# OVERLAPPING #-}
+         HasField "viewportSubPixelBits" VkPhysicalDeviceLimits where
+        type FieldType "viewportSubPixelBits" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "viewportSubPixelBits" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "viewportSubPixelBits" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, viewportSubPixelBits}
+        type FieldIsArray "viewportSubPixelBits" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, viewportSubPixelBits}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "viewportSubPixelBits" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, viewportSubPixelBits})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, viewportSubPixelBits}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "viewportSubPixelBits" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, viewportSubPixelBits}
+
+instance {-# OVERLAPPING #-}
+         HasField "minMemoryMapAlignment" VkPhysicalDeviceLimits where
+        type FieldType "minMemoryMapAlignment" VkPhysicalDeviceLimits =
+             CSize
+        type FieldOptional "minMemoryMapAlignment" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "minMemoryMapAlignment" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, minMemoryMapAlignment}
+        type FieldIsArray "minMemoryMapAlignment" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, minMemoryMapAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minMemoryMapAlignment" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minMemoryMapAlignment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, minMemoryMapAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minMemoryMapAlignment" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minMemoryMapAlignment}
+
+instance {-# OVERLAPPING #-}
+         HasField "minTexelBufferOffsetAlignment" VkPhysicalDeviceLimits
+         where
+        type FieldType "minTexelBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = VkDeviceSize
+        type FieldOptional "minTexelBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minTexelBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment}
+        type FieldIsArray "minTexelBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minTexelBufferOffsetAlignment" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minTexelBufferOffsetAlignment"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         HasField "minUniformBufferOffsetAlignment" VkPhysicalDeviceLimits
+         where
+        type FieldType "minUniformBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = VkDeviceSize
+        type FieldOptional "minUniformBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minUniformBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment}
+        type FieldIsArray "minUniformBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minUniformBufferOffsetAlignment"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minUniformBufferOffsetAlignment"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         HasField "minStorageBufferOffsetAlignment" VkPhysicalDeviceLimits
+         where
+        type FieldType "minStorageBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = VkDeviceSize
+        type FieldOptional "minStorageBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minStorageBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment}
+        type FieldIsArray "minStorageBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minStorageBufferOffsetAlignment"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minStorageBufferOffsetAlignment"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         HasField "minTexelOffset" VkPhysicalDeviceLimits where
+        type FieldType "minTexelOffset" VkPhysicalDeviceLimits = Int32
+        type FieldOptional "minTexelOffset" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minTexelOffset" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, minTexelOffset}
+        type FieldIsArray "minTexelOffset" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, minTexelOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minTexelOffset" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minTexelOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, minTexelOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minTexelOffset" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minTexelOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTexelOffset" VkPhysicalDeviceLimits where
+        type FieldType "maxTexelOffset" VkPhysicalDeviceLimits = Word32
+        type FieldOptional "maxTexelOffset" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTexelOffset" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxTexelOffset}
+        type FieldIsArray "maxTexelOffset" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTexelOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTexelOffset" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTexelOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTexelOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTexelOffset" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTexelOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "minTexelGatherOffset" VkPhysicalDeviceLimits where
+        type FieldType "minTexelGatherOffset" VkPhysicalDeviceLimits =
+             Int32
+        type FieldOptional "minTexelGatherOffset" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "minTexelGatherOffset" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, minTexelGatherOffset}
+        type FieldIsArray "minTexelGatherOffset" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, minTexelGatherOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minTexelGatherOffset" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minTexelGatherOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, minTexelGatherOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minTexelGatherOffset" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minTexelGatherOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTexelGatherOffset" VkPhysicalDeviceLimits where
+        type FieldType "maxTexelGatherOffset" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxTexelGatherOffset" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTexelGatherOffset" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxTexelGatherOffset}
+        type FieldIsArray "maxTexelGatherOffset" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTexelGatherOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTexelGatherOffset" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTexelGatherOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTexelGatherOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTexelGatherOffset" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTexelGatherOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "minInterpolationOffset" VkPhysicalDeviceLimits where
+        type FieldType "minInterpolationOffset" VkPhysicalDeviceLimits =
+             #{type float}
+        type FieldOptional "minInterpolationOffset" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minInterpolationOffset" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, minInterpolationOffset}
+        type FieldIsArray "minInterpolationOffset" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, minInterpolationOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minInterpolationOffset" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minInterpolationOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, minInterpolationOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minInterpolationOffset" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minInterpolationOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxInterpolationOffset" VkPhysicalDeviceLimits where
+        type FieldType "maxInterpolationOffset" VkPhysicalDeviceLimits =
+             #{type float}
+        type FieldOptional "maxInterpolationOffset" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxInterpolationOffset" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxInterpolationOffset}
+        type FieldIsArray "maxInterpolationOffset" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxInterpolationOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxInterpolationOffset" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxInterpolationOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxInterpolationOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxInterpolationOffset" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxInterpolationOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "subPixelInterpolationOffsetBits" VkPhysicalDeviceLimits
+         where
+        type FieldType "subPixelInterpolationOffsetBits"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "subPixelInterpolationOffsetBits"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "subPixelInterpolationOffsetBits"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits}
+        type FieldIsArray "subPixelInterpolationOffsetBits"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "subPixelInterpolationOffsetBits"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "subPixelInterpolationOffsetBits"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxFramebufferWidth" VkPhysicalDeviceLimits where
+        type FieldType "maxFramebufferWidth" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxFramebufferWidth" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxFramebufferWidth" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxFramebufferWidth}
+        type FieldIsArray "maxFramebufferWidth" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxFramebufferWidth}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxFramebufferWidth" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFramebufferWidth})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferWidth}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxFramebufferWidth" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferWidth}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxFramebufferHeight" VkPhysicalDeviceLimits where
+        type FieldType "maxFramebufferHeight" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxFramebufferHeight" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxFramebufferHeight" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxFramebufferHeight}
+        type FieldIsArray "maxFramebufferHeight" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxFramebufferHeight}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxFramebufferHeight" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFramebufferHeight})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferHeight}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxFramebufferHeight" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferHeight}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxFramebufferLayers" VkPhysicalDeviceLimits where
+        type FieldType "maxFramebufferLayers" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxFramebufferLayers" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxFramebufferLayers" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxFramebufferLayers}
+        type FieldIsArray "maxFramebufferLayers" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxFramebufferLayers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxFramebufferLayers" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFramebufferLayers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferLayers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxFramebufferLayers" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferLayers}
+
+instance {-# OVERLAPPING #-}
+         HasField "framebufferColorSampleCounts" VkPhysicalDeviceLimits
+         where
+        type FieldType "framebufferColorSampleCounts"
+               VkPhysicalDeviceLimits
+             = VkSampleCountFlags
+        type FieldOptional "framebufferColorSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "framebufferColorSampleCounts"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, framebufferColorSampleCounts}
+        type FieldIsArray "framebufferColorSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, framebufferColorSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "framebufferColorSampleCounts" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, framebufferColorSampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, framebufferColorSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "framebufferColorSampleCounts" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, framebufferColorSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "framebufferDepthSampleCounts" VkPhysicalDeviceLimits
+         where
+        type FieldType "framebufferDepthSampleCounts"
+               VkPhysicalDeviceLimits
+             = VkSampleCountFlags
+        type FieldOptional "framebufferDepthSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "framebufferDepthSampleCounts"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, framebufferDepthSampleCounts}
+        type FieldIsArray "framebufferDepthSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, framebufferDepthSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "framebufferDepthSampleCounts" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, framebufferDepthSampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, framebufferDepthSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "framebufferDepthSampleCounts" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, framebufferDepthSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "framebufferStencilSampleCounts" VkPhysicalDeviceLimits
+         where
+        type FieldType "framebufferStencilSampleCounts"
+               VkPhysicalDeviceLimits
+             = VkSampleCountFlags
+        type FieldOptional "framebufferStencilSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "framebufferStencilSampleCounts"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, framebufferStencilSampleCounts}
+        type FieldIsArray "framebufferStencilSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, framebufferStencilSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "framebufferStencilSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, framebufferStencilSampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, framebufferStencilSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "framebufferStencilSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, framebufferStencilSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "framebufferNoAttachmentsSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "framebufferNoAttachmentsSampleCounts"
+               VkPhysicalDeviceLimits
+             = VkSampleCountFlags
+        type FieldOptional "framebufferNoAttachmentsSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "framebufferNoAttachmentsSampleCounts"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts}
+        type FieldIsArray "framebufferNoAttachmentsSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "framebufferNoAttachmentsSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "framebufferNoAttachmentsSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxColorAttachments" VkPhysicalDeviceLimits where
+        type FieldType "maxColorAttachments" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxColorAttachments" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxColorAttachments" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxColorAttachments}
+        type FieldIsArray "maxColorAttachments" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxColorAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxColorAttachments" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxColorAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxColorAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxColorAttachments" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxColorAttachments}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampledImageColorSampleCounts" VkPhysicalDeviceLimits
+         where
+        type FieldType "sampledImageColorSampleCounts"
+               VkPhysicalDeviceLimits
+             = VkSampleCountFlags
+        type FieldOptional "sampledImageColorSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "sampledImageColorSampleCounts"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, sampledImageColorSampleCounts}
+        type FieldIsArray "sampledImageColorSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, sampledImageColorSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampledImageColorSampleCounts" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, sampledImageColorSampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, sampledImageColorSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampledImageColorSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, sampledImageColorSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampledImageIntegerSampleCounts" VkPhysicalDeviceLimits
+         where
+        type FieldType "sampledImageIntegerSampleCounts"
+               VkPhysicalDeviceLimits
+             = VkSampleCountFlags
+        type FieldOptional "sampledImageIntegerSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "sampledImageIntegerSampleCounts"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts}
+        type FieldIsArray "sampledImageIntegerSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampledImageIntegerSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampledImageIntegerSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampledImageDepthSampleCounts" VkPhysicalDeviceLimits
+         where
+        type FieldType "sampledImageDepthSampleCounts"
+               VkPhysicalDeviceLimits
+             = VkSampleCountFlags
+        type FieldOptional "sampledImageDepthSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "sampledImageDepthSampleCounts"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, sampledImageDepthSampleCounts}
+        type FieldIsArray "sampledImageDepthSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, sampledImageDepthSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampledImageDepthSampleCounts" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, sampledImageDepthSampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, sampledImageDepthSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampledImageDepthSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, sampledImageDepthSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampledImageStencilSampleCounts" VkPhysicalDeviceLimits
+         where
+        type FieldType "sampledImageStencilSampleCounts"
+               VkPhysicalDeviceLimits
+             = VkSampleCountFlags
+        type FieldOptional "sampledImageStencilSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "sampledImageStencilSampleCounts"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, sampledImageStencilSampleCounts}
+        type FieldIsArray "sampledImageStencilSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, sampledImageStencilSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampledImageStencilSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, sampledImageStencilSampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, sampledImageStencilSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampledImageStencilSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, sampledImageStencilSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "storageImageSampleCounts" VkPhysicalDeviceLimits where
+        type FieldType "storageImageSampleCounts" VkPhysicalDeviceLimits =
+             VkSampleCountFlags
+        type FieldOptional "storageImageSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "storageImageSampleCounts" VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, storageImageSampleCounts}
+        type FieldIsArray "storageImageSampleCounts" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, storageImageSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "storageImageSampleCounts" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, storageImageSampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, storageImageSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "storageImageSampleCounts" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, storageImageSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxSampleMaskWords" VkPhysicalDeviceLimits where
+        type FieldType "maxSampleMaskWords" VkPhysicalDeviceLimits = Word32
+        type FieldOptional "maxSampleMaskWords" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxSampleMaskWords" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxSampleMaskWords}
+        type FieldIsArray "maxSampleMaskWords" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxSampleMaskWords}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxSampleMaskWords" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxSampleMaskWords})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxSampleMaskWords}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxSampleMaskWords" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxSampleMaskWords}
+
+instance {-# OVERLAPPING #-}
+         HasField "timestampComputeAndGraphics" VkPhysicalDeviceLimits where
+        type FieldType "timestampComputeAndGraphics" VkPhysicalDeviceLimits
+             = VkBool32
+        type FieldOptional "timestampComputeAndGraphics"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "timestampComputeAndGraphics"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, timestampComputeAndGraphics}
+        type FieldIsArray "timestampComputeAndGraphics"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, timestampComputeAndGraphics}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "timestampComputeAndGraphics" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, timestampComputeAndGraphics})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, timestampComputeAndGraphics}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "timestampComputeAndGraphics" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, timestampComputeAndGraphics}
+
+instance {-# OVERLAPPING #-}
+         HasField "timestampPeriod" VkPhysicalDeviceLimits where
+        type FieldType "timestampPeriod" VkPhysicalDeviceLimits =
+             #{type float}
+        type FieldOptional "timestampPeriod" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "timestampPeriod" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, timestampPeriod}
+        type FieldIsArray "timestampPeriod" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, timestampPeriod}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "timestampPeriod" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, timestampPeriod})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, timestampPeriod}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "timestampPeriod" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, timestampPeriod}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxClipDistances" VkPhysicalDeviceLimits where
+        type FieldType "maxClipDistances" VkPhysicalDeviceLimits = Word32
+        type FieldOptional "maxClipDistances" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxClipDistances" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxClipDistances}
+        type FieldIsArray "maxClipDistances" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxClipDistances}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxClipDistances" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxClipDistances})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxClipDistances}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxClipDistances" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxClipDistances}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxCullDistances" VkPhysicalDeviceLimits where
+        type FieldType "maxCullDistances" VkPhysicalDeviceLimits = Word32
+        type FieldOptional "maxCullDistances" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxCullDistances" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxCullDistances}
+        type FieldIsArray "maxCullDistances" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxCullDistances}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxCullDistances" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxCullDistances})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxCullDistances}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxCullDistances" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxCullDistances}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxCombinedClipAndCullDistances" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxCombinedClipAndCullDistances"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxCombinedClipAndCullDistances"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxCombinedClipAndCullDistances"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances}
+        type FieldIsArray "maxCombinedClipAndCullDistances"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxCombinedClipAndCullDistances"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxCombinedClipAndCullDistances"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances}
+
+instance {-# OVERLAPPING #-}
+         HasField "discreteQueuePriorities" VkPhysicalDeviceLimits where
+        type FieldType "discreteQueuePriorities" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "discreteQueuePriorities" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "discreteQueuePriorities" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, discreteQueuePriorities}
+        type FieldIsArray "discreteQueuePriorities" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, discreteQueuePriorities}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "discreteQueuePriorities" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, discreteQueuePriorities})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, discreteQueuePriorities}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "discreteQueuePriorities" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, discreteQueuePriorities}
+
+instance {-# OVERLAPPING #-}
+         HasField "pointSizeRange" VkPhysicalDeviceLimits where
+        type FieldType "pointSizeRange" VkPhysicalDeviceLimits =
+             #{type float}
+        type FieldOptional "pointSizeRange" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pointSizeRange" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, pointSizeRange}
+        type FieldIsArray "pointSizeRange" VkPhysicalDeviceLimits = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, pointSizeRange}
+
+instance {-# OVERLAPPING #-}
+         CanReadFieldArray "pointSizeRange" VkPhysicalDeviceLimits where
+        type FieldArrayLength "pointSizeRange" VkPhysicalDeviceLimits = 2
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 2
+
+        {-# INLINE getFieldArrayUnsafe #-}
+        getFieldArrayUnsafe i = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceLimits, pointSizeRange} +
+                      sizeOf (undefined :: #{type float}) * i
+
+        {-# INLINE readFieldArrayUnsafe #-}
+        readFieldArrayUnsafe i p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceLimits, pointSizeRange} +
+                 sizeOf (undefined :: #{type float}) * i)
+
+instance {-# OVERLAPPING #-}
+         CanWriteFieldArray "pointSizeRange" VkPhysicalDeviceLimits where
+        {-# INLINE writeFieldArrayUnsafe #-}
+        writeFieldArrayUnsafe i p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceLimits, pointSizeRange} +
+                 sizeOf (undefined :: #{type float}) * i)
+
+instance {-# OVERLAPPING #-}
+         HasField "lineWidthRange" VkPhysicalDeviceLimits where
+        type FieldType "lineWidthRange" VkPhysicalDeviceLimits =
+             #{type float}
+        type FieldOptional "lineWidthRange" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "lineWidthRange" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, lineWidthRange}
+        type FieldIsArray "lineWidthRange" VkPhysicalDeviceLimits = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, lineWidthRange}
+
+instance {-# OVERLAPPING #-}
+         CanReadFieldArray "lineWidthRange" VkPhysicalDeviceLimits where
+        type FieldArrayLength "lineWidthRange" VkPhysicalDeviceLimits = 2
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 2
+
+        {-# INLINE getFieldArrayUnsafe #-}
+        getFieldArrayUnsafe i = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceLimits, lineWidthRange} +
+                      sizeOf (undefined :: #{type float}) * i
+
+        {-# INLINE readFieldArrayUnsafe #-}
+        readFieldArrayUnsafe i p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceLimits, lineWidthRange} +
+                 sizeOf (undefined :: #{type float}) * i)
+
+instance {-# OVERLAPPING #-}
+         CanWriteFieldArray "lineWidthRange" VkPhysicalDeviceLimits where
+        {-# INLINE writeFieldArrayUnsafe #-}
+        writeFieldArrayUnsafe i p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceLimits, lineWidthRange} +
+                 sizeOf (undefined :: #{type float}) * i)
+
+instance {-# OVERLAPPING #-}
+         HasField "pointSizeGranularity" VkPhysicalDeviceLimits where
+        type FieldType "pointSizeGranularity" VkPhysicalDeviceLimits =
+             #{type float}
+        type FieldOptional "pointSizeGranularity" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pointSizeGranularity" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, pointSizeGranularity}
+        type FieldIsArray "pointSizeGranularity" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, pointSizeGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pointSizeGranularity" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, pointSizeGranularity})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, pointSizeGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pointSizeGranularity" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, pointSizeGranularity}
+
+instance {-# OVERLAPPING #-}
+         HasField "lineWidthGranularity" VkPhysicalDeviceLimits where
+        type FieldType "lineWidthGranularity" VkPhysicalDeviceLimits =
+             #{type float}
+        type FieldOptional "lineWidthGranularity" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "lineWidthGranularity" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, lineWidthGranularity}
+        type FieldIsArray "lineWidthGranularity" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, lineWidthGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "lineWidthGranularity" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, lineWidthGranularity})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, lineWidthGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "lineWidthGranularity" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, lineWidthGranularity}
+
+instance {-# OVERLAPPING #-}
+         HasField "strictLines" VkPhysicalDeviceLimits where
+        type FieldType "strictLines" VkPhysicalDeviceLimits = VkBool32
+        type FieldOptional "strictLines" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "strictLines" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, strictLines}
+        type FieldIsArray "strictLines" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, strictLines}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "strictLines" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, strictLines})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, strictLines}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "strictLines" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, strictLines}
+
+instance {-# OVERLAPPING #-}
+         HasField "standardSampleLocations" VkPhysicalDeviceLimits where
+        type FieldType "standardSampleLocations" VkPhysicalDeviceLimits =
+             VkBool32
+        type FieldOptional "standardSampleLocations" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "standardSampleLocations" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, standardSampleLocations}
+        type FieldIsArray "standardSampleLocations" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, standardSampleLocations}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "standardSampleLocations" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, standardSampleLocations})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, standardSampleLocations}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "standardSampleLocations" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, standardSampleLocations}
+
+instance {-# OVERLAPPING #-}
+         HasField "optimalBufferCopyOffsetAlignment" VkPhysicalDeviceLimits
+         where
+        type FieldType "optimalBufferCopyOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = VkDeviceSize
+        type FieldOptional "optimalBufferCopyOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "optimalBufferCopyOffsetAlignment"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment}
+        type FieldIsArray "optimalBufferCopyOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "optimalBufferCopyOffsetAlignment"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "optimalBufferCopyOffsetAlignment"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         HasField "optimalBufferCopyRowPitchAlignment"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "optimalBufferCopyRowPitchAlignment"
+               VkPhysicalDeviceLimits
+             = VkDeviceSize
+        type FieldOptional "optimalBufferCopyRowPitchAlignment"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "optimalBufferCopyRowPitchAlignment"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment}
+        type FieldIsArray "optimalBufferCopyRowPitchAlignment"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "optimalBufferCopyRowPitchAlignment"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "optimalBufferCopyRowPitchAlignment"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment}
+
+instance {-# OVERLAPPING #-}
+         HasField "nonCoherentAtomSize" VkPhysicalDeviceLimits where
+        type FieldType "nonCoherentAtomSize" VkPhysicalDeviceLimits =
+             VkDeviceSize
+        type FieldOptional "nonCoherentAtomSize" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "nonCoherentAtomSize" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, nonCoherentAtomSize}
+        type FieldIsArray "nonCoherentAtomSize" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, nonCoherentAtomSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "nonCoherentAtomSize" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, nonCoherentAtomSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, nonCoherentAtomSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "nonCoherentAtomSize" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, nonCoherentAtomSize}
+
+instance Show VkPhysicalDeviceLimits where
+        showsPrec d x
+          = showString "VkPhysicalDeviceLimits {" .
+              showString "maxImageDimension1D = " .
+                showsPrec d (getField @"maxImageDimension1D" x) .
+                  showString ", " .
+                    showString "maxImageDimension2D = " .
+                      showsPrec d (getField @"maxImageDimension2D" x) .
+                        showString ", " .
+                          showString "maxImageDimension3D = " .
+                            showsPrec d (getField @"maxImageDimension3D" x) .
+                              showString ", " .
+                                showString "maxImageDimensionCube = " .
+                                  showsPrec d (getField @"maxImageDimensionCube" x) .
+                                    showString ", " .
+                                      showString "maxImageArrayLayers = " .
+                                        showsPrec d (getField @"maxImageArrayLayers" x) .
+                                          showString ", " .
+                                            showString "maxTexelBufferElements = " .
+                                              showsPrec d (getField @"maxTexelBufferElements" x) .
+                                                showString ", " .
+                                                  showString "maxUniformBufferRange = " .
+                                                    showsPrec d
+                                                      (getField @"maxUniformBufferRange" x)
+                                                      .
+                                                      showString ", " .
+                                                        showString "maxStorageBufferRange = " .
+                                                          showsPrec d
+                                                            (getField @"maxStorageBufferRange" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString "maxPushConstantsSize = " .
+                                                                showsPrec d
+                                                                  (getField @"maxPushConstantsSize"
+                                                                     x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString
+                                                                      "maxMemoryAllocationCount = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"maxMemoryAllocationCount"
+                                                                           x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "maxSamplerAllocationCount = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"maxSamplerAllocationCount"
+                                                                                 x)
+                                                                              .
+                                                                              showString ", " .
+                                                                                showString
+                                                                                  "bufferImageGranularity = "
+                                                                                  .
+                                                                                  showsPrec d
+                                                                                    (getField
+                                                                                       @"bufferImageGranularity"
+                                                                                       x)
+                                                                                    .
+                                                                                    showString ", "
+                                                                                      .
+                                                                                      showString
+                                                                                        "sparseAddressSpaceSize = "
+                                                                                        .
+                                                                                        showsPrec d
+                                                                                          (getField
+                                                                                             @"sparseAddressSpaceSize"
+                                                                                             x)
+                                                                                          .
+                                                                                          showString
+                                                                                            ", "
+                                                                                            .
+                                                                                            showString
+                                                                                              "maxBoundDescriptorSets = "
+                                                                                              .
+                                                                                              showsPrec
+                                                                                                d
+                                                                                                (getField
+                                                                                                   @"maxBoundDescriptorSets"
+                                                                                                   x)
+                                                                                                .
+                                                                                                showString
+                                                                                                  ", "
+                                                                                                  .
+                                                                                                  showString
+                                                                                                    "maxPerStageDescriptorSamplers = "
+                                                                                                    .
+                                                                                                    showsPrec
+                                                                                                      d
+                                                                                                      (getField
+                                                                                                         @"maxPerStageDescriptorSamplers"
+                                                                                                         x)
+                                                                                                      .
+                                                                                                      showString
+                                                                                                        ", "
+                                                                                                        .
+                                                                                                        showString
+                                                                                                          "maxPerStageDescriptorUniformBuffers = "
+                                                                                                          .
+                                                                                                          showsPrec
+                                                                                                            d
+                                                                                                            (getField
+                                                                                                               @"maxPerStageDescriptorUniformBuffers"
+                                                                                                               x)
+                                                                                                            .
+                                                                                                            showString
+                                                                                                              ", "
+                                                                                                              .
+                                                                                                              showString
+                                                                                                                "maxPerStageDescriptorStorageBuffers = "
+                                                                                                                .
+                                                                                                                showsPrec
+                                                                                                                  d
+                                                                                                                  (getField
+                                                                                                                     @"maxPerStageDescriptorStorageBuffers"
+                                                                                                                     x)
+                                                                                                                  .
+                                                                                                                  showString
+                                                                                                                    ", "
+                                                                                                                    .
+                                                                                                                    showString
+                                                                                                                      "maxPerStageDescriptorSampledImages = "
+                                                                                                                      .
+                                                                                                                      showsPrec
+                                                                                                                        d
+                                                                                                                        (getField
+                                                                                                                           @"maxPerStageDescriptorSampledImages"
+                                                                                                                           x)
+                                                                                                                        .
+                                                                                                                        showString
+                                                                                                                          ", "
+                                                                                                                          .
+                                                                                                                          showString
+                                                                                                                            "maxPerStageDescriptorStorageImages = "
+                                                                                                                            .
+                                                                                                                            showsPrec
+                                                                                                                              d
+                                                                                                                              (getField
+                                                                                                                                 @"maxPerStageDescriptorStorageImages"
+                                                                                                                                 x)
+                                                                                                                              .
+                                                                                                                              showString
+                                                                                                                                ", "
+                                                                                                                                .
+                                                                                                                                showString
+                                                                                                                                  "maxPerStageDescriptorInputAttachments = "
+                                                                                                                                  .
+                                                                                                                                  showsPrec
+                                                                                                                                    d
+                                                                                                                                    (getField
+                                                                                                                                       @"maxPerStageDescriptorInputAttachments"
+                                                                                                                                       x)
+                                                                                                                                    .
+                                                                                                                                    showString
+                                                                                                                                      ", "
+                                                                                                                                      .
+                                                                                                                                      showString
+                                                                                                                                        "maxPerStageResources = "
+                                                                                                                                        .
+                                                                                                                                        showsPrec
+                                                                                                                                          d
+                                                                                                                                          (getField
+                                                                                                                                             @"maxPerStageResources"
+                                                                                                                                             x)
+                                                                                                                                          .
+                                                                                                                                          showString
+                                                                                                                                            ", "
+                                                                                                                                            .
+                                                                                                                                            showString
+                                                                                                                                              "maxDescriptorSetSamplers = "
+                                                                                                                                              .
+                                                                                                                                              showsPrec
+                                                                                                                                                d
+                                                                                                                                                (getField
+                                                                                                                                                   @"maxDescriptorSetSamplers"
+                                                                                                                                                   x)
+                                                                                                                                                .
+                                                                                                                                                showString
+                                                                                                                                                  ", "
+                                                                                                                                                  .
+                                                                                                                                                  showString
+                                                                                                                                                    "maxDescriptorSetUniformBuffers = "
+                                                                                                                                                    .
+                                                                                                                                                    showsPrec
+                                                                                                                                                      d
+                                                                                                                                                      (getField
+                                                                                                                                                         @"maxDescriptorSetUniformBuffers"
+                                                                                                                                                         x)
+                                                                                                                                                      .
+                                                                                                                                                      showString
+                                                                                                                                                        ", "
+                                                                                                                                                        .
+                                                                                                                                                        showString
+                                                                                                                                                          "maxDescriptorSetUniformBuffersDynamic = "
+                                                                                                                                                          .
+                                                                                                                                                          showsPrec
+                                                                                                                                                            d
+                                                                                                                                                            (getField
+                                                                                                                                                               @"maxDescriptorSetUniformBuffersDynamic"
+                                                                                                                                                               x)
+                                                                                                                                                            .
+                                                                                                                                                            showString
+                                                                                                                                                              ", "
+                                                                                                                                                              .
+                                                                                                                                                              showString
+                                                                                                                                                                "maxDescriptorSetStorageBuffers = "
+                                                                                                                                                                .
+                                                                                                                                                                showsPrec
+                                                                                                                                                                  d
+                                                                                                                                                                  (getField
+                                                                                                                                                                     @"maxDescriptorSetStorageBuffers"
+                                                                                                                                                                     x)
+                                                                                                                                                                  .
+                                                                                                                                                                  showString
+                                                                                                                                                                    ", "
+                                                                                                                                                                    .
+                                                                                                                                                                    showString
+                                                                                                                                                                      "maxDescriptorSetStorageBuffersDynamic = "
+                                                                                                                                                                      .
+                                                                                                                                                                      showsPrec
+                                                                                                                                                                        d
+                                                                                                                                                                        (getField
+                                                                                                                                                                           @"maxDescriptorSetStorageBuffersDynamic"
+                                                                                                                                                                           x)
+                                                                                                                                                                        .
+                                                                                                                                                                        showString
+                                                                                                                                                                          ", "
+                                                                                                                                                                          .
+                                                                                                                                                                          showString
+                                                                                                                                                                            "maxDescriptorSetSampledImages = "
+                                                                                                                                                                            .
+                                                                                                                                                                            showsPrec
+                                                                                                                                                                              d
+                                                                                                                                                                              (getField
+                                                                                                                                                                                 @"maxDescriptorSetSampledImages"
+                                                                                                                                                                                 x)
+                                                                                                                                                                              .
+                                                                                                                                                                              showString
+                                                                                                                                                                                ", "
+                                                                                                                                                                                .
+                                                                                                                                                                                showString
+                                                                                                                                                                                  "maxDescriptorSetStorageImages = "
+                                                                                                                                                                                  .
+                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                    d
+                                                                                                                                                                                    (getField
+                                                                                                                                                                                       @"maxDescriptorSetStorageImages"
+                                                                                                                                                                                       x)
+                                                                                                                                                                                    .
+                                                                                                                                                                                    showString
+                                                                                                                                                                                      ", "
+                                                                                                                                                                                      .
+                                                                                                                                                                                      showString
+                                                                                                                                                                                        "maxDescriptorSetInputAttachments = "
+                                                                                                                                                                                        .
+                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                          d
+                                                                                                                                                                                          (getField
+                                                                                                                                                                                             @"maxDescriptorSetInputAttachments"
+                                                                                                                                                                                             x)
+                                                                                                                                                                                          .
+                                                                                                                                                                                          showString
+                                                                                                                                                                                            ", "
+                                                                                                                                                                                            .
+                                                                                                                                                                                            showString
+                                                                                                                                                                                              "maxVertexInputAttributes = "
+                                                                                                                                                                                              .
+                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                d
+                                                                                                                                                                                                (getField
+                                                                                                                                                                                                   @"maxVertexInputAttributes"
+                                                                                                                                                                                                   x)
+                                                                                                                                                                                                .
+                                                                                                                                                                                                showString
+                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                  .
+                                                                                                                                                                                                  showString
+                                                                                                                                                                                                    "maxVertexInputBindings = "
+                                                                                                                                                                                                    .
+                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                      d
+                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                         @"maxVertexInputBindings"
+                                                                                                                                                                                                         x)
+                                                                                                                                                                                                      .
+                                                                                                                                                                                                      showString
+                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                        .
+                                                                                                                                                                                                        showString
+                                                                                                                                                                                                          "maxVertexInputAttributeOffset = "
+                                                                                                                                                                                                          .
+                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                            d
+                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                               @"maxVertexInputAttributeOffset"
+                                                                                                                                                                                                               x)
+                                                                                                                                                                                                            .
+                                                                                                                                                                                                            showString
+                                                                                                                                                                                                              ", "
+                                                                                                                                                                                                              .
+                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                "maxVertexInputBindingStride = "
+                                                                                                                                                                                                                .
+                                                                                                                                                                                                                showsPrec
+                                                                                                                                                                                                                  d
+                                                                                                                                                                                                                  (getField
+                                                                                                                                                                                                                     @"maxVertexInputBindingStride"
+                                                                                                                                                                                                                     x)
+                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                      "maxVertexOutputComponents = "
+                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                           @"maxVertexOutputComponents"
+                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                            "maxTessellationGenerationLevel = "
+                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                 @"maxTessellationGenerationLevel"
+                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                  "maxTessellationPatchSize = "
+                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                       @"maxTessellationPatchSize"
+                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                        "maxTessellationControlPerVertexInputComponents = "
+                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                                                                          d
+                                                                                                                                                                                                                                          (getField
+                                                                                                                                                                                                                                             @"maxTessellationControlPerVertexInputComponents"
+                                                                                                                                                                                                                                             x)
+                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                              "maxTessellationControlPerVertexOutputComponents = "
+                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                                                                d
+                                                                                                                                                                                                                                                (getField
+                                                                                                                                                                                                                                                   @"maxTessellationControlPerVertexOutputComponents"
+                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                    "maxTessellationControlPerPatchOutputComponents = "
+                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                                                                      d
+                                                                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                                                                         @"maxTessellationControlPerPatchOutputComponents"
+                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                          "maxTessellationControlTotalOutputComponents = "
+                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                                                                            d
+                                                                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                                                                               @"maxTessellationControlTotalOutputComponents"
+                                                                                                                                                                                                                                                               x)
+                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                              ", "
+                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                "maxTessellationEvaluationInputComponents = "
+                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                showsPrec
+                                                                                                                                                                                                                                                                  d
+                                                                                                                                                                                                                                                                  (getField
+                                                                                                                                                                                                                                                                     @"maxTessellationEvaluationInputComponents"
+                                                                                                                                                                                                                                                                     x)
+                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                      "maxTessellationEvaluationOutputComponents = "
+                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                                                                           @"maxTessellationEvaluationOutputComponents"
+                                                                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                            "maxGeometryShaderInvocations = "
+                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                                                                 @"maxGeometryShaderInvocations"
+                                                                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                  "maxGeometryInputComponents = "
+                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                                                                       @"maxGeometryInputComponents"
+                                                                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                        "maxGeometryOutputComponents = "
+                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                                                                                                                          d
+                                                                                                                                                                                                                                                                                          (getField
+                                                                                                                                                                                                                                                                                             @"maxGeometryOutputComponents"
+                                                                                                                                                                                                                                                                                             x)
+                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                              "maxGeometryOutputVertices = "
+                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                                                                                                                d
+                                                                                                                                                                                                                                                                                                (getField
+                                                                                                                                                                                                                                                                                                   @"maxGeometryOutputVertices"
+                                                                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                    "maxGeometryTotalOutputComponents = "
+                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                                                                                                                      d
+                                                                                                                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                                                                                                                         @"maxGeometryTotalOutputComponents"
+                                                                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                          "maxFragmentInputComponents = "
+                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                                                                                                                            d
+                                                                                                                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                                                                                                                               @"maxFragmentInputComponents"
+                                                                                                                                                                                                                                                                                                               x)
+                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                              ", "
+                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                "maxFragmentOutputAttachments = "
+                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                showsPrec
+                                                                                                                                                                                                                                                                                                                  d
+                                                                                                                                                                                                                                                                                                                  (getField
+                                                                                                                                                                                                                                                                                                                     @"maxFragmentOutputAttachments"
+                                                                                                                                                                                                                                                                                                                     x)
+                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                      "maxFragmentDualSrcAttachments = "
+                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                                                                                                                           @"maxFragmentDualSrcAttachments"
+                                                                                                                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                            "maxFragmentCombinedOutputResources = "
+                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                                                                                                                 @"maxFragmentCombinedOutputResources"
+                                                                                                                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                  "maxComputeSharedMemorySize = "
+                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                                                                                                                       @"maxComputeSharedMemorySize"
+                                                                                                                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                      (showString
+                                                                                                                                                                                                                                                                                                                                         "maxComputeWorkGroupCount = ["
+                                                                                                                                                                                                                                                                                                                                         .
+                                                                                                                                                                                                                                                                                                                                         showsPrec
+                                                                                                                                                                                                                                                                                                                                           d
+                                                                                                                                                                                                                                                                                                                                           (let s = sizeOf
+                                                                                                                                                                                                                                                                                                                                                      (undefined
+                                                                                                                                                                                                                                                                                                                                                         ::
+                                                                                                                                                                                                                                                                                                                                                         FieldType
+                                                                                                                                                                                                                                                                                                                                                           "maxComputeWorkGroupCount"
+                                                                                                                                                                                                                                                                                                                                                           VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                o = fieldOffset
+                                                                                                                                                                                                                                                                                                                                                      @"maxComputeWorkGroupCount"
+                                                                                                                                                                                                                                                                                                                                                      @VkPhysicalDeviceLimits
+                                                                                                                                                                                                                                                                                                                                                f i
+                                                                                                                                                                                                                                                                                                                                                  = peekByteOff
+                                                                                                                                                                                                                                                                                                                                                      (unsafePtr
+                                                                                                                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                                                                                                                      i
+                                                                                                                                                                                                                                                                                                                                                      ::
+                                                                                                                                                                                                                                                                                                                                                      IO
+                                                                                                                                                                                                                                                                                                                                                        (FieldType
+                                                                                                                                                                                                                                                                                                                                                           "maxComputeWorkGroupCount"
+                                                                                                                                                                                                                                                                                                                                                           VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                              in
+                                                                                                                                                                                                                                                                                                                                              unsafeDupablePerformIO
+                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                mapM
+                                                                                                                                                                                                                                                                                                                                                  f
+                                                                                                                                                                                                                                                                                                                                                $
+                                                                                                                                                                                                                                                                                                                                                map
+                                                                                                                                                                                                                                                                                                                                                  (\ i
+                                                                                                                                                                                                                                                                                                                                                     ->
+                                                                                                                                                                                                                                                                                                                                                     o +
+                                                                                                                                                                                                                                                                                                                                                       i *
+                                                                                                                                                                                                                                                                                                                                                         s)
+                                                                                                                                                                                                                                                                                                                                                  [0
+                                                                                                                                                                                                                                                                                                                                                   ..
+                                                                                                                                                                                                                                                                                                                                                   3 -
+                                                                                                                                                                                                                                                                                                                                                     1])
+                                                                                                                                                                                                                                                                                                                                           .
+                                                                                                                                                                                                                                                                                                                                           showChar
+                                                                                                                                                                                                                                                                                                                                             ']')
+                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                            "maxComputeWorkGroupInvocations = "
+                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                                                                                                                                 @"maxComputeWorkGroupInvocations"
+                                                                                                                                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                (showString
+                                                                                                                                                                                                                                                                                                                                                   "maxComputeWorkGroupSize = ["
+                                                                                                                                                                                                                                                                                                                                                   .
+                                                                                                                                                                                                                                                                                                                                                   showsPrec
+                                                                                                                                                                                                                                                                                                                                                     d
+                                                                                                                                                                                                                                                                                                                                                     (let s = sizeOf
+                                                                                                                                                                                                                                                                                                                                                                (undefined
+                                                                                                                                                                                                                                                                                                                                                                   ::
+                                                                                                                                                                                                                                                                                                                                                                   FieldType
+                                                                                                                                                                                                                                                                                                                                                                     "maxComputeWorkGroupSize"
+                                                                                                                                                                                                                                                                                                                                                                     VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                          o = fieldOffset
+                                                                                                                                                                                                                                                                                                                                                                @"maxComputeWorkGroupSize"
+                                                                                                                                                                                                                                                                                                                                                                @VkPhysicalDeviceLimits
+                                                                                                                                                                                                                                                                                                                                                          f i
+                                                                                                                                                                                                                                                                                                                                                            = peekByteOff
+                                                                                                                                                                                                                                                                                                                                                                (unsafePtr
+                                                                                                                                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                                                                                                                                i
+                                                                                                                                                                                                                                                                                                                                                                ::
+                                                                                                                                                                                                                                                                                                                                                                IO
+                                                                                                                                                                                                                                                                                                                                                                  (FieldType
+                                                                                                                                                                                                                                                                                                                                                                     "maxComputeWorkGroupSize"
+                                                                                                                                                                                                                                                                                                                                                                     VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                        in
+                                                                                                                                                                                                                                                                                                                                                        unsafeDupablePerformIO
+                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                          mapM
+                                                                                                                                                                                                                                                                                                                                                            f
+                                                                                                                                                                                                                                                                                                                                                          $
+                                                                                                                                                                                                                                                                                                                                                          map
+                                                                                                                                                                                                                                                                                                                                                            (\ i
+                                                                                                                                                                                                                                                                                                                                                               ->
+                                                                                                                                                                                                                                                                                                                                                               o +
+                                                                                                                                                                                                                                                                                                                                                                 i *
+                                                                                                                                                                                                                                                                                                                                                                   s)
+                                                                                                                                                                                                                                                                                                                                                            [0
+                                                                                                                                                                                                                                                                                                                                                             ..
+                                                                                                                                                                                                                                                                                                                                                             3 -
+                                                                                                                                                                                                                                                                                                                                                               1])
+                                                                                                                                                                                                                                                                                                                                                     .
+                                                                                                                                                                                                                                                                                                                                                     showChar
+                                                                                                                                                                                                                                                                                                                                                       ']')
+                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                      "subPixelPrecisionBits = "
+                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                                                                                                                                                           @"subPixelPrecisionBits"
+                                                                                                                                                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                            "subTexelPrecisionBits = "
+                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                                                                                                                                                 @"subTexelPrecisionBits"
+                                                                                                                                                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                  "mipmapPrecisionBits = "
+                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                                                                                                                                                       @"mipmapPrecisionBits"
+                                                                                                                                                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                        "maxDrawIndexedIndexValue = "
+                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                                                                                                                                                                                                          d
+                                                                                                                                                                                                                                                                                                                                                                          (getField
+                                                                                                                                                                                                                                                                                                                                                                             @"maxDrawIndexedIndexValue"
+                                                                                                                                                                                                                                                                                                                                                                             x)
+                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                              "maxDrawIndirectCount = "
+                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                d
+                                                                                                                                                                                                                                                                                                                                                                                (getField
+                                                                                                                                                                                                                                                                                                                                                                                   @"maxDrawIndirectCount"
+                                                                                                                                                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                    "maxSamplerLodBias = "
+                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                      d
+                                                                                                                                                                                                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                                                                                                                                                                                                         @"maxSamplerLodBias"
+                                                                                                                                                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                          "maxSamplerAnisotropy = "
+                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                            d
+                                                                                                                                                                                                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                                                                                                                                                                                                               @"maxSamplerAnisotropy"
+                                                                                                                                                                                                                                                                                                                                                                                               x)
+                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                                              ", "
+                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                "maxViewports = "
+                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                  d
+                                                                                                                                                                                                                                                                                                                                                                                                  (getField
+                                                                                                                                                                                                                                                                                                                                                                                                     @"maxViewports"
+                                                                                                                                                                                                                                                                                                                                                                                                     x)
+                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                    (showString
+                                                                                                                                                                                                                                                                                                                                                                                                       "maxViewportDimensions = ["
+                                                                                                                                                                                                                                                                                                                                                                                                       .
+                                                                                                                                                                                                                                                                                                                                                                                                       showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                         d
+                                                                                                                                                                                                                                                                                                                                                                                                         (let s = sizeOf
+                                                                                                                                                                                                                                                                                                                                                                                                                    (undefined
+                                                                                                                                                                                                                                                                                                                                                                                                                       ::
+                                                                                                                                                                                                                                                                                                                                                                                                                       FieldType
+                                                                                                                                                                                                                                                                                                                                                                                                                         "maxViewportDimensions"
+                                                                                                                                                                                                                                                                                                                                                                                                                         VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                                                                              o = fieldOffset
+                                                                                                                                                                                                                                                                                                                                                                                                                    @"maxViewportDimensions"
+                                                                                                                                                                                                                                                                                                                                                                                                                    @VkPhysicalDeviceLimits
+                                                                                                                                                                                                                                                                                                                                                                                                              f i
+                                                                                                                                                                                                                                                                                                                                                                                                                = peekByteOff
+                                                                                                                                                                                                                                                                                                                                                                                                                    (unsafePtr
+                                                                                                                                                                                                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                                                                                                                                                                                                    i
+                                                                                                                                                                                                                                                                                                                                                                                                                    ::
+                                                                                                                                                                                                                                                                                                                                                                                                                    IO
+                                                                                                                                                                                                                                                                                                                                                                                                                      (FieldType
+                                                                                                                                                                                                                                                                                                                                                                                                                         "maxViewportDimensions"
+                                                                                                                                                                                                                                                                                                                                                                                                                         VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                                                                            in
+                                                                                                                                                                                                                                                                                                                                                                                                            unsafeDupablePerformIO
+                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                              mapM
+                                                                                                                                                                                                                                                                                                                                                                                                                f
+                                                                                                                                                                                                                                                                                                                                                                                                              $
+                                                                                                                                                                                                                                                                                                                                                                                                              map
+                                                                                                                                                                                                                                                                                                                                                                                                                (\ i
+                                                                                                                                                                                                                                                                                                                                                                                                                   ->
+                                                                                                                                                                                                                                                                                                                                                                                                                   o +
+                                                                                                                                                                                                                                                                                                                                                                                                                     i *
+                                                                                                                                                                                                                                                                                                                                                                                                                       s)
+                                                                                                                                                                                                                                                                                                                                                                                                                [0
+                                                                                                                                                                                                                                                                                                                                                                                                                 ..
+                                                                                                                                                                                                                                                                                                                                                                                                                 2 -
+                                                                                                                                                                                                                                                                                                                                                                                                                   1])
+                                                                                                                                                                                                                                                                                                                                                                                                         .
+                                                                                                                                                                                                                                                                                                                                                                                                         showChar
+                                                                                                                                                                                                                                                                                                                                                                                                           ']')
+                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                        (showString
+                                                                                                                                                                                                                                                                                                                                                                                                           "viewportBoundsRange = ["
+                                                                                                                                                                                                                                                                                                                                                                                                           .
+                                                                                                                                                                                                                                                                                                                                                                                                           showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                             d
+                                                                                                                                                                                                                                                                                                                                                                                                             (let s = sizeOf
+                                                                                                                                                                                                                                                                                                                                                                                                                        (undefined
+                                                                                                                                                                                                                                                                                                                                                                                                                           ::
+                                                                                                                                                                                                                                                                                                                                                                                                                           FieldType
+                                                                                                                                                                                                                                                                                                                                                                                                                             "viewportBoundsRange"
+                                                                                                                                                                                                                                                                                                                                                                                                                             VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                                                                                  o = fieldOffset
+                                                                                                                                                                                                                                                                                                                                                                                                                        @"viewportBoundsRange"
+                                                                                                                                                                                                                                                                                                                                                                                                                        @VkPhysicalDeviceLimits
+                                                                                                                                                                                                                                                                                                                                                                                                                  f i
+                                                                                                                                                                                                                                                                                                                                                                                                                    = peekByteOff
+                                                                                                                                                                                                                                                                                                                                                                                                                        (unsafePtr
+                                                                                                                                                                                                                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                                                                                                                                                                                                                        i
+                                                                                                                                                                                                                                                                                                                                                                                                                        ::
+                                                                                                                                                                                                                                                                                                                                                                                                                        IO
+                                                                                                                                                                                                                                                                                                                                                                                                                          (FieldType
+                                                                                                                                                                                                                                                                                                                                                                                                                             "viewportBoundsRange"
+                                                                                                                                                                                                                                                                                                                                                                                                                             VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                                                                                in
+                                                                                                                                                                                                                                                                                                                                                                                                                unsafeDupablePerformIO
+                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                  mapM
+                                                                                                                                                                                                                                                                                                                                                                                                                    f
+                                                                                                                                                                                                                                                                                                                                                                                                                  $
+                                                                                                                                                                                                                                                                                                                                                                                                                  map
+                                                                                                                                                                                                                                                                                                                                                                                                                    (\ i
+                                                                                                                                                                                                                                                                                                                                                                                                                       ->
+                                                                                                                                                                                                                                                                                                                                                                                                                       o +
+                                                                                                                                                                                                                                                                                                                                                                                                                         i *
+                                                                                                                                                                                                                                                                                                                                                                                                                           s)
+                                                                                                                                                                                                                                                                                                                                                                                                                    [0
+                                                                                                                                                                                                                                                                                                                                                                                                                     ..
+                                                                                                                                                                                                                                                                                                                                                                                                                     2 -
+                                                                                                                                                                                                                                                                                                                                                                                                                       1])
+                                                                                                                                                                                                                                                                                                                                                                                                             .
+                                                                                                                                                                                                                                                                                                                                                                                                             showChar
+                                                                                                                                                                                                                                                                                                                                                                                                               ']')
+                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                                                              "viewportSubPixelBits = "
+                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                d
+                                                                                                                                                                                                                                                                                                                                                                                                                (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                   @"viewportSubPixelBits"
+                                                                                                                                                                                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                                    "minMemoryMapAlignment = "
+                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                      d
+                                                                                                                                                                                                                                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                         @"minMemoryMapAlignment"
+                                                                                                                                                                                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                                                          "minTexelBufferOffsetAlignment = "
+                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                            d
+                                                                                                                                                                                                                                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                               @"minTexelBufferOffsetAlignment"
+                                                                                                                                                                                                                                                                                                                                                                                                                               x)
+                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                                                                              ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                "minUniformBufferOffsetAlignment = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                  d
+                                                                                                                                                                                                                                                                                                                                                                                                                                  (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                     @"minUniformBufferOffsetAlignment"
+                                                                                                                                                                                                                                                                                                                                                                                                                                     x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                      "minStorageBufferOffsetAlignment = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                           @"minStorageBufferOffsetAlignment"
+                                                                                                                                                                                                                                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                            "minTexelOffset = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                 @"minTexelOffset"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                  "maxTexelOffset = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                       @"maxTexelOffset"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                        "minTexelGatherOffset = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                          d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                          (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                             @"minTexelGatherOffset"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                             x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                              "maxTexelGatherOffset = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   @"maxTexelGatherOffset"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                    "minInterpolationOffset = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                      d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                         @"minInterpolationOffset"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                          "maxInterpolationOffset = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                            d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                               @"maxInterpolationOffset"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                               x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                "subPixelInterpolationOffsetBits = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     @"subPixelInterpolationOffsetBits"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "maxFramebufferWidth = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           @"maxFramebufferWidth"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "maxFramebufferHeight = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @"maxFramebufferHeight"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  "maxFramebufferLayers = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       @"maxFramebufferLayers"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        "framebufferColorSampleCounts = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             @"framebufferColorSampleCounts"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              "framebufferDepthSampleCounts = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   @"framebufferDepthSampleCounts"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    "framebufferStencilSampleCounts = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         @"framebufferStencilSampleCounts"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          "framebufferNoAttachmentsSampleCounts = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               @"framebufferNoAttachmentsSampleCounts"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                "maxColorAttachments = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     @"maxColorAttachments"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "sampledImageColorSampleCounts = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           @"sampledImageColorSampleCounts"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "sampledImageIntegerSampleCounts = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @"sampledImageIntegerSampleCounts"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  "sampledImageDepthSampleCounts = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       @"sampledImageDepthSampleCounts"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        "sampledImageStencilSampleCounts = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             @"sampledImageStencilSampleCounts"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              "storageImageSampleCounts = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   @"storageImageSampleCounts"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    "maxSampleMaskWords = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         @"maxSampleMaskWords"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          "timestampComputeAndGraphics = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               @"timestampComputeAndGraphics"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                "timestampPeriod = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     @"timestampPeriod"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "maxClipDistances = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           @"maxClipDistances"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "maxCullDistances = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @"maxCullDistances"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  "maxCombinedClipAndCullDistances = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       @"maxCombinedClipAndCullDistances"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        "discreteQueuePriorities = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             @"discreteQueuePriorities"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               "pointSizeRange = ["
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (let s = sizeOf
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (undefined
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ::
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               FieldType
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 "pointSizeRange"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      o = fieldOffset
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            @"pointSizeRange"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            @VkPhysicalDeviceLimits
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      f i
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        = peekByteOff
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (unsafePtr
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            i
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ::
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            IO
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (FieldType
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 "pointSizeRange"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    in
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    unsafeDupablePerformIO
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      mapM
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        f
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      $
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      map
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (\ i
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ->
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           o +
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             i *
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               s)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        [0
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ..
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         2 -
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           1])
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 showChar
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ']')
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   "lineWidthRange = ["
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (let s = sizeOf
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (undefined
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ::
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   FieldType
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     "lineWidthRange"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          o = fieldOffset
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                @"lineWidthRange"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                @VkPhysicalDeviceLimits
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          f i
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            = peekByteOff
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (unsafePtr
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                i
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ::
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                IO
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (FieldType
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     "lineWidthRange"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        in
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        unsafeDupablePerformIO
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          mapM
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            f
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          $
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          map
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (\ i
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ->
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               o +
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 i *
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   s)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            [0
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ..
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             2 -
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               1])
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     showChar
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ']')
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "pointSizeGranularity = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           @"pointSizeGranularity"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "lineWidthGranularity = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @"lineWidthGranularity"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  "strictLines = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       @"strictLines"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        "standardSampleLocations = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             @"standardSampleLocations"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              "optimalBufferCopyOffsetAlignment = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   @"optimalBufferCopyOffsetAlignment"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    "optimalBufferCopyRowPitchAlignment = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         @"optimalBufferCopyRowPitchAlignment"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          "nonCoherentAtomSize = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               @"nonCoherentAtomSize"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showChar
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              '}'
+
+-- | > typedef struct VkPhysicalDeviceMaintenance3Properties {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     uint32_t                         maxPerSetDescriptors;
+--   >     VkDeviceSize                     maxMemoryAllocationSize;
+--   > } VkPhysicalDeviceMaintenance3Properties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3Properties registry at www.khronos.org>
+type VkPhysicalDeviceMaintenance3Properties =
+     VulkanStruct VkPhysicalDeviceMaintenance3Properties' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceMaintenance3Properties' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceMaintenance3Properties where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceMaintenance3Properties where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceMaintenance3Properties where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceMaintenance3Properties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceMaintenance3Properties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceMaintenance3Properties where
+        type StructFields VkPhysicalDeviceMaintenance3Properties =
+             '["sType", "pNext", "maxPerSetDescriptors", -- ' closing tick for hsc2hs
+               "maxMemoryAllocationSize"]
+        type CUnionType VkPhysicalDeviceMaintenance3Properties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceMaintenance3Properties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceMaintenance3Properties =
+             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceMaintenance3Properties where
+        type FieldType "sType" VkPhysicalDeviceMaintenance3Properties =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceMaintenance3Properties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceMaintenance3Properties =
+             #{offset VkPhysicalDeviceMaintenance3Properties, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceMaintenance3Properties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMaintenance3Properties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceMaintenance3Properties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMaintenance3Properties, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceMaintenance3Properties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceMaintenance3Properties where
+        type FieldType "pNext" VkPhysicalDeviceMaintenance3Properties =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceMaintenance3Properties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceMaintenance3Properties =
+             #{offset VkPhysicalDeviceMaintenance3Properties, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceMaintenance3Properties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMaintenance3Properties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceMaintenance3Properties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMaintenance3Properties, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceMaintenance3Properties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerSetDescriptors"
+           VkPhysicalDeviceMaintenance3Properties
+         where
+        type FieldType "maxPerSetDescriptors"
+               VkPhysicalDeviceMaintenance3Properties
+             = Word32
+        type FieldOptional "maxPerSetDescriptors"
+               VkPhysicalDeviceMaintenance3Properties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPerSetDescriptors"
+               VkPhysicalDeviceMaintenance3Properties
+             =
+             #{offset VkPhysicalDeviceMaintenance3Properties, maxPerSetDescriptors}
+        type FieldIsArray "maxPerSetDescriptors"
+               VkPhysicalDeviceMaintenance3Properties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMaintenance3Properties, maxPerSetDescriptors}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerSetDescriptors"
+           VkPhysicalDeviceMaintenance3Properties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMaintenance3Properties, maxPerSetDescriptors})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, maxPerSetDescriptors}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerSetDescriptors"
+           VkPhysicalDeviceMaintenance3Properties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, maxPerSetDescriptors}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxMemoryAllocationSize"
+           VkPhysicalDeviceMaintenance3Properties
+         where
+        type FieldType "maxMemoryAllocationSize"
+               VkPhysicalDeviceMaintenance3Properties
+             = VkDeviceSize
+        type FieldOptional "maxMemoryAllocationSize"
+               VkPhysicalDeviceMaintenance3Properties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxMemoryAllocationSize"
+               VkPhysicalDeviceMaintenance3Properties
+             =
+             #{offset VkPhysicalDeviceMaintenance3Properties, maxMemoryAllocationSize}
+        type FieldIsArray "maxMemoryAllocationSize"
+               VkPhysicalDeviceMaintenance3Properties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMaintenance3Properties, maxMemoryAllocationSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxMemoryAllocationSize"
+           VkPhysicalDeviceMaintenance3Properties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMaintenance3Properties, maxMemoryAllocationSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, maxMemoryAllocationSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxMemoryAllocationSize"
+           VkPhysicalDeviceMaintenance3Properties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, maxMemoryAllocationSize}
+
+instance Show VkPhysicalDeviceMaintenance3Properties where
+        showsPrec d x
+          = showString "VkPhysicalDeviceMaintenance3Properties {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "maxPerSetDescriptors = " .
+                            showsPrec d (getField @"maxPerSetDescriptors" x) .
+                              showString ", " .
+                                showString "maxMemoryAllocationSize = " .
+                                  showsPrec d (getField @"maxMemoryAllocationSize" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceMaintenance3Properties`
+type VkPhysicalDeviceMaintenance3PropertiesKHR =
+     VkPhysicalDeviceMaintenance3Properties
+
+-- | > typedef struct VkPhysicalDeviceMemoryProperties {
+--   >     uint32_t               memoryTypeCount;
+--   >     VkMemoryType           memoryTypes[VK_MAX_MEMORY_TYPES];
+--   >     uint32_t               memoryHeapCount;
+--   >     VkMemoryHeap           memoryHeaps[VK_MAX_MEMORY_HEAPS];
+--   > } VkPhysicalDeviceMemoryProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceMemoryProperties VkPhysicalDeviceMemoryProperties registry at www.khronos.org>
+type VkPhysicalDeviceMemoryProperties =
+     VulkanStruct VkPhysicalDeviceMemoryProperties' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceMemoryProperties' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceMemoryProperties where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceMemoryProperties where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceMemoryProperties where
+        sizeOf ~_ = #{size VkPhysicalDeviceMemoryProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceMemoryProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceMemoryProperties where
+        type StructFields VkPhysicalDeviceMemoryProperties =
+             '["memoryTypeCount", "memoryTypes", "memoryHeapCount", -- ' closing tick for hsc2hs
+               "memoryHeaps"]
+        type CUnionType VkPhysicalDeviceMemoryProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceMemoryProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceMemoryProperties = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryTypeCount" VkPhysicalDeviceMemoryProperties where
+        type FieldType "memoryTypeCount" VkPhysicalDeviceMemoryProperties =
+             Word32
+        type FieldOptional "memoryTypeCount"
+               VkPhysicalDeviceMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryTypeCount" VkPhysicalDeviceMemoryProperties
+             =
+             #{offset VkPhysicalDeviceMemoryProperties, memoryTypeCount}
+        type FieldIsArray "memoryTypeCount"
+               VkPhysicalDeviceMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMemoryProperties, memoryTypeCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memoryTypeCount" VkPhysicalDeviceMemoryProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMemoryProperties, memoryTypeCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMemoryProperties, memoryTypeCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memoryTypeCount" VkPhysicalDeviceMemoryProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMemoryProperties, memoryTypeCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryTypes" VkPhysicalDeviceMemoryProperties where
+        type FieldType "memoryTypes" VkPhysicalDeviceMemoryProperties =
+             VkMemoryType
+        type FieldOptional "memoryTypes" VkPhysicalDeviceMemoryProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryTypes" VkPhysicalDeviceMemoryProperties =
+             #{offset VkPhysicalDeviceMemoryProperties, memoryTypes}
+        type FieldIsArray "memoryTypes" VkPhysicalDeviceMemoryProperties =
+             'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMemoryProperties, memoryTypes}
+
+instance {-# OVERLAPPING #-}
+         CanReadFieldArray "memoryTypes" VkPhysicalDeviceMemoryProperties
+         where
+        type FieldArrayLength "memoryTypes"
+               VkPhysicalDeviceMemoryProperties
+             = VK_MAX_MEMORY_TYPES
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = VK_MAX_MEMORY_TYPES
+
+        {-# INLINE getFieldArrayUnsafe #-}
+        getFieldArrayUnsafe i = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceMemoryProperties, memoryTypes}
+                      + sizeOf (undefined :: VkMemoryType) * i
+
+        {-# INLINE readFieldArrayUnsafe #-}
+        readFieldArrayUnsafe i p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceMemoryProperties, memoryTypes}
+                 + sizeOf (undefined :: VkMemoryType) * i)
+
+instance {-# OVERLAPPING #-}
+         CanWriteFieldArray "memoryTypes" VkPhysicalDeviceMemoryProperties
+         where
+        {-# INLINE writeFieldArrayUnsafe #-}
+        writeFieldArrayUnsafe i p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceMemoryProperties, memoryTypes}
+                 + sizeOf (undefined :: VkMemoryType) * i)
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryHeapCount" VkPhysicalDeviceMemoryProperties where
+        type FieldType "memoryHeapCount" VkPhysicalDeviceMemoryProperties =
+             Word32
+        type FieldOptional "memoryHeapCount"
+               VkPhysicalDeviceMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryHeapCount" VkPhysicalDeviceMemoryProperties
+             =
+             #{offset VkPhysicalDeviceMemoryProperties, memoryHeapCount}
+        type FieldIsArray "memoryHeapCount"
+               VkPhysicalDeviceMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMemoryProperties, memoryHeapCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memoryHeapCount" VkPhysicalDeviceMemoryProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMemoryProperties, memoryHeapCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMemoryProperties, memoryHeapCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memoryHeapCount" VkPhysicalDeviceMemoryProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMemoryProperties, memoryHeapCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryHeaps" VkPhysicalDeviceMemoryProperties where
+        type FieldType "memoryHeaps" VkPhysicalDeviceMemoryProperties =
+             VkMemoryHeap
+        type FieldOptional "memoryHeaps" VkPhysicalDeviceMemoryProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryHeaps" VkPhysicalDeviceMemoryProperties =
+             #{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}
+        type FieldIsArray "memoryHeaps" VkPhysicalDeviceMemoryProperties =
+             'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}
+
+instance {-# OVERLAPPING #-}
+         CanReadFieldArray "memoryHeaps" VkPhysicalDeviceMemoryProperties
+         where
+        type FieldArrayLength "memoryHeaps"
+               VkPhysicalDeviceMemoryProperties
+             = VK_MAX_MEMORY_HEAPS
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = VK_MAX_MEMORY_HEAPS
+
+        {-# INLINE getFieldArrayUnsafe #-}
+        getFieldArrayUnsafe i = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}
+                      + sizeOf (undefined :: VkMemoryHeap) * i
+
+        {-# INLINE readFieldArrayUnsafe #-}
+        readFieldArrayUnsafe i p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}
+                 + sizeOf (undefined :: VkMemoryHeap) * i)
+
+instance {-# OVERLAPPING #-}
+         CanWriteFieldArray "memoryHeaps" VkPhysicalDeviceMemoryProperties
+         where
+        {-# INLINE writeFieldArrayUnsafe #-}
+        writeFieldArrayUnsafe i p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}
+                 + sizeOf (undefined :: VkMemoryHeap) * i)
+
+instance Show VkPhysicalDeviceMemoryProperties where
+        showsPrec d x
+          = showString "VkPhysicalDeviceMemoryProperties {" .
+              showString "memoryTypeCount = " .
+                showsPrec d (getField @"memoryTypeCount" x) .
+                  showString ", " .
+                    (showString "memoryTypes = [" .
+                       showsPrec d
+                         (let s = sizeOf
+                                    (undefined ::
+                                       FieldType "memoryTypes" VkPhysicalDeviceMemoryProperties)
+                              o = fieldOffset @"memoryTypes" @VkPhysicalDeviceMemoryProperties
+                              f i
+                                = peekByteOff (unsafePtr x) i ::
+                                    IO (FieldType "memoryTypes" VkPhysicalDeviceMemoryProperties)
+                            in
+                            unsafeDupablePerformIO . mapM f $
+                              map (\ i -> o + i * s) [0 .. VK_MAX_MEMORY_TYPES - 1])
+                         . showChar ']')
+                      .
+                      showString ", " .
+                        showString "memoryHeapCount = " .
+                          showsPrec d (getField @"memoryHeapCount" x) .
+                            showString ", " .
+                              (showString "memoryHeaps = [" .
+                                 showsPrec d
+                                   (let s = sizeOf
+                                              (undefined ::
+                                                 FieldType "memoryHeaps"
+                                                   VkPhysicalDeviceMemoryProperties)
+                                        o = fieldOffset @"memoryHeaps"
+                                              @VkPhysicalDeviceMemoryProperties
+                                        f i
+                                          = peekByteOff (unsafePtr x) i ::
+                                              IO
+                                                (FieldType "memoryHeaps"
+                                                   VkPhysicalDeviceMemoryProperties)
+                                      in
+                                      unsafeDupablePerformIO . mapM f $
+                                        map (\ i -> o + i * s) [0 .. VK_MAX_MEMORY_HEAPS - 1])
+                                   . showChar ']')
+                                . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceMemoryProperties2 {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkPhysicalDeviceMemoryProperties memoryProperties;
+--   > } VkPhysicalDeviceMemoryProperties2;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2 registry at www.khronos.org>
+type VkPhysicalDeviceMemoryProperties2 =
+     VulkanStruct VkPhysicalDeviceMemoryProperties2' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceMemoryProperties2' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceMemoryProperties2 where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceMemoryProperties2 where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceMemoryProperties2 where
+        sizeOf ~_ = #{size VkPhysicalDeviceMemoryProperties2}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceMemoryProperties2}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceMemoryProperties2 where
+        type StructFields VkPhysicalDeviceMemoryProperties2 =
+             '["sType", "pNext", "memoryProperties"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceMemoryProperties2 = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceMemoryProperties2 = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceMemoryProperties2 = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceMemoryProperties2 where
+        type FieldType "sType" VkPhysicalDeviceMemoryProperties2 =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceMemoryProperties2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceMemoryProperties2 =
+             #{offset VkPhysicalDeviceMemoryProperties2, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceMemoryProperties2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMemoryProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceMemoryProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMemoryProperties2, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMemoryProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceMemoryProperties2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMemoryProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceMemoryProperties2 where
+        type FieldType "pNext" VkPhysicalDeviceMemoryProperties2 = Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceMemoryProperties2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceMemoryProperties2 =
+             #{offset VkPhysicalDeviceMemoryProperties2, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceMemoryProperties2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMemoryProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceMemoryProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMemoryProperties2, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMemoryProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceMemoryProperties2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMemoryProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryProperties" VkPhysicalDeviceMemoryProperties2 where
+        type FieldType "memoryProperties" VkPhysicalDeviceMemoryProperties2
+             = VkPhysicalDeviceMemoryProperties
+        type FieldOptional "memoryProperties"
+               VkPhysicalDeviceMemoryProperties2
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryProperties"
+               VkPhysicalDeviceMemoryProperties2
+             =
+             #{offset VkPhysicalDeviceMemoryProperties2, memoryProperties}
+        type FieldIsArray "memoryProperties"
+               VkPhysicalDeviceMemoryProperties2
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMemoryProperties2, memoryProperties}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memoryProperties" VkPhysicalDeviceMemoryProperties2
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMemoryProperties2, memoryProperties})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMemoryProperties2, memoryProperties}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memoryProperties" VkPhysicalDeviceMemoryProperties2
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMemoryProperties2, memoryProperties}
+
+instance Show VkPhysicalDeviceMemoryProperties2 where
+        showsPrec d x
+          = showString "VkPhysicalDeviceMemoryProperties2 {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "memoryProperties = " .
+                            showsPrec d (getField @"memoryProperties" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceMemoryProperties2`
+type VkPhysicalDeviceMemoryProperties2KHR =
+     VkPhysicalDeviceMemoryProperties2
+
+-- | > typedef struct VkPhysicalDeviceMultiviewFeatures {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkBool32                         multiview;
+--   >     VkBool32                         multiviewGeometryShader;
+--   >     VkBool32                         multiviewTessellationShader;
+--   > } VkPhysicalDeviceMultiviewFeatures;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeatures registry at www.khronos.org>
+type VkPhysicalDeviceMultiviewFeatures =
+     VulkanStruct VkPhysicalDeviceMultiviewFeatures' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceMultiviewFeatures' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceMultiviewFeatures where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceMultiviewFeatures where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceMultiviewFeatures where
+        sizeOf ~_ = #{size VkPhysicalDeviceMultiviewFeatures}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceMultiviewFeatures}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceMultiviewFeatures where
+        type StructFields VkPhysicalDeviceMultiviewFeatures =
+             '["sType", "pNext", "multiview", "multiviewGeometryShader", -- ' closing tick for hsc2hs
+               "multiviewTessellationShader"]
+        type CUnionType VkPhysicalDeviceMultiviewFeatures = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceMultiviewFeatures = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceMultiviewFeatures =
+             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceMultiviewFeatures where
+        type FieldType "sType" VkPhysicalDeviceMultiviewFeatures =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceMultiviewFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceMultiviewFeatures =
+             #{offset VkPhysicalDeviceMultiviewFeatures, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceMultiviewFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceMultiviewFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewFeatures, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceMultiviewFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceMultiviewFeatures where
+        type FieldType "pNext" VkPhysicalDeviceMultiviewFeatures = Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceMultiviewFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceMultiviewFeatures =
+             #{offset VkPhysicalDeviceMultiviewFeatures, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceMultiviewFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceMultiviewFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewFeatures, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceMultiviewFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "multiview" VkPhysicalDeviceMultiviewFeatures where
+        type FieldType "multiview" VkPhysicalDeviceMultiviewFeatures =
+             VkBool32
+        type FieldOptional "multiview" VkPhysicalDeviceMultiviewFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "multiview" VkPhysicalDeviceMultiviewFeatures =
+             #{offset VkPhysicalDeviceMultiviewFeatures, multiview}
+        type FieldIsArray "multiview" VkPhysicalDeviceMultiviewFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewFeatures, multiview}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "multiview" VkPhysicalDeviceMultiviewFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewFeatures, multiview})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiview}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "multiview" VkPhysicalDeviceMultiviewFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiview}
+
+instance {-# OVERLAPPING #-}
+         HasField "multiviewGeometryShader"
+           VkPhysicalDeviceMultiviewFeatures
+         where
+        type FieldType "multiviewGeometryShader"
+               VkPhysicalDeviceMultiviewFeatures
+             = VkBool32
+        type FieldOptional "multiviewGeometryShader"
+               VkPhysicalDeviceMultiviewFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "multiviewGeometryShader"
+               VkPhysicalDeviceMultiviewFeatures
+             =
+             #{offset VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader}
+        type FieldIsArray "multiviewGeometryShader"
+               VkPhysicalDeviceMultiviewFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "multiviewGeometryShader"
+           VkPhysicalDeviceMultiviewFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "multiviewGeometryShader"
+           VkPhysicalDeviceMultiviewFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader}
+
+instance {-# OVERLAPPING #-}
+         HasField "multiviewTessellationShader"
+           VkPhysicalDeviceMultiviewFeatures
+         where
+        type FieldType "multiviewTessellationShader"
+               VkPhysicalDeviceMultiviewFeatures
+             = VkBool32
+        type FieldOptional "multiviewTessellationShader"
+               VkPhysicalDeviceMultiviewFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "multiviewTessellationShader"
+               VkPhysicalDeviceMultiviewFeatures
+             =
+             #{offset VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader}
+        type FieldIsArray "multiviewTessellationShader"
+               VkPhysicalDeviceMultiviewFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "multiviewTessellationShader"
+           VkPhysicalDeviceMultiviewFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "multiviewTessellationShader"
+           VkPhysicalDeviceMultiviewFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader}
+
+instance Show VkPhysicalDeviceMultiviewFeatures where
+        showsPrec d x
+          = showString "VkPhysicalDeviceMultiviewFeatures {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "multiview = " .
+                            showsPrec d (getField @"multiview" x) .
+                              showString ", " .
+                                showString "multiviewGeometryShader = " .
+                                  showsPrec d (getField @"multiviewGeometryShader" x) .
+                                    showString ", " .
+                                      showString "multiviewTessellationShader = " .
+                                        showsPrec d (getField @"multiviewTessellationShader" x) .
+                                          showChar '}'
+
+-- | Alias for `VkPhysicalDeviceMultiviewFeatures`
+type VkPhysicalDeviceMultiviewFeaturesKHR =
+     VkPhysicalDeviceMultiviewFeatures
+
+-- | > typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkBool32                         perViewPositionAllComponents;
+--   > } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX registry at www.khronos.org>
+type VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX =
+     VulkanStruct
+       VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        type StructFields
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = '["sType", "pNext", "perViewPositionAllComponents"] -- ' closing tick for hsc2hs
+        type CUnionType
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = 'True -- ' closing tick for hsc2hs
+        type StructExtends
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType"
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             =
+             #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType"
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext"
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             =
+             #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext"
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "perViewPositionAllComponents"
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        type FieldType "perViewPositionAllComponents"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = VkBool32
+        type FieldOptional "perViewPositionAllComponents"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "perViewPositionAllComponents"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             =
+             #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, perViewPositionAllComponents}
+        type FieldIsArray "perViewPositionAllComponents"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, perViewPositionAllComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "perViewPositionAllComponents"
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, perViewPositionAllComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, perViewPositionAllComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "perViewPositionAllComponents"
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, perViewPositionAllComponents}
+
+instance Show
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        showsPrec d x
+          = showString
+              "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {"
+              .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "perViewPositionAllComponents = " .
+                            showsPrec d (getField @"perViewPositionAllComponents" x) .
+                              showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceMultiviewProperties {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     uint32_t                         maxMultiviewViewCount;
+--   >     uint32_t                         maxMultiviewInstanceIndex;
+--   > } VkPhysicalDeviceMultiviewProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewProperties registry at www.khronos.org>
+type VkPhysicalDeviceMultiviewProperties =
+     VulkanStruct VkPhysicalDeviceMultiviewProperties' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceMultiviewProperties' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceMultiviewProperties where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceMultiviewProperties where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceMultiviewProperties where
+        sizeOf ~_ = #{size VkPhysicalDeviceMultiviewProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceMultiviewProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceMultiviewProperties where
+        type StructFields VkPhysicalDeviceMultiviewProperties =
+             '["sType", "pNext", "maxMultiviewViewCount", -- ' closing tick for hsc2hs
+               "maxMultiviewInstanceIndex"]
+        type CUnionType VkPhysicalDeviceMultiviewProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceMultiviewProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceMultiviewProperties =
+             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceMultiviewProperties where
+        type FieldType "sType" VkPhysicalDeviceMultiviewProperties =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceMultiviewProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceMultiviewProperties =
+             #{offset VkPhysicalDeviceMultiviewProperties, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceMultiviewProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceMultiviewProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewProperties, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceMultiviewProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceMultiviewProperties where
+        type FieldType "pNext" VkPhysicalDeviceMultiviewProperties =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceMultiviewProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceMultiviewProperties =
+             #{offset VkPhysicalDeviceMultiviewProperties, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceMultiviewProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceMultiviewProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewProperties, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceMultiviewProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxMultiviewViewCount"
+           VkPhysicalDeviceMultiviewProperties
+         where
+        type FieldType "maxMultiviewViewCount"
+               VkPhysicalDeviceMultiviewProperties
+             = Word32
+        type FieldOptional "maxMultiviewViewCount"
+               VkPhysicalDeviceMultiviewProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxMultiviewViewCount"
+               VkPhysicalDeviceMultiviewProperties
+             =
+             #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewViewCount}
+        type FieldIsArray "maxMultiviewViewCount"
+               VkPhysicalDeviceMultiviewProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewViewCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxMultiviewViewCount"
+           VkPhysicalDeviceMultiviewProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewViewCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewViewCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxMultiviewViewCount"
+           VkPhysicalDeviceMultiviewProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewViewCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxMultiviewInstanceIndex"
+           VkPhysicalDeviceMultiviewProperties
+         where
+        type FieldType "maxMultiviewInstanceIndex"
+               VkPhysicalDeviceMultiviewProperties
+             = Word32
+        type FieldOptional "maxMultiviewInstanceIndex"
+               VkPhysicalDeviceMultiviewProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxMultiviewInstanceIndex"
+               VkPhysicalDeviceMultiviewProperties
+             =
+             #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewInstanceIndex}
+        type FieldIsArray "maxMultiviewInstanceIndex"
+               VkPhysicalDeviceMultiviewProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewInstanceIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxMultiviewInstanceIndex"
+           VkPhysicalDeviceMultiviewProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewInstanceIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewInstanceIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxMultiviewInstanceIndex"
+           VkPhysicalDeviceMultiviewProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewInstanceIndex}
+
+instance Show VkPhysicalDeviceMultiviewProperties where
+        showsPrec d x
+          = showString "VkPhysicalDeviceMultiviewProperties {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "maxMultiviewViewCount = " .
+                            showsPrec d (getField @"maxMultiviewViewCount" x) .
+                              showString ", " .
+                                showString "maxMultiviewInstanceIndex = " .
+                                  showsPrec d (getField @"maxMultiviewInstanceIndex" x) .
+                                    showChar '}'
+
+-- | Alias for `VkPhysicalDeviceMultiviewProperties`
+type VkPhysicalDeviceMultiviewPropertiesKHR =
+     VkPhysicalDeviceMultiviewProperties
+
+-- | > typedef struct VkPhysicalDevicePointClippingProperties {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkPointClippingBehavior      pointClippingBehavior;
+--   > } VkPhysicalDevicePointClippingProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingProperties registry at www.khronos.org>
+type VkPhysicalDevicePointClippingProperties =
+     VulkanStruct VkPhysicalDevicePointClippingProperties' -- ' closing tick for hsc2hs
+
+data VkPhysicalDevicePointClippingProperties' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDevicePointClippingProperties where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDevicePointClippingProperties where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDevicePointClippingProperties where
+        sizeOf ~_
+          = #{size VkPhysicalDevicePointClippingProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDevicePointClippingProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDevicePointClippingProperties
+         where
+        type StructFields VkPhysicalDevicePointClippingProperties =
+             '["sType", "pNext", "pointClippingBehavior"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDevicePointClippingProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDevicePointClippingProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDevicePointClippingProperties =
+             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDevicePointClippingProperties where
+        type FieldType "sType" VkPhysicalDevicePointClippingProperties =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDevicePointClippingProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDevicePointClippingProperties =
+             #{offset VkPhysicalDevicePointClippingProperties, sType}
+        type FieldIsArray "sType" VkPhysicalDevicePointClippingProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevicePointClippingProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDevicePointClippingProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePointClippingProperties, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevicePointClippingProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDevicePointClippingProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevicePointClippingProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDevicePointClippingProperties where
+        type FieldType "pNext" VkPhysicalDevicePointClippingProperties =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDevicePointClippingProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDevicePointClippingProperties =
+             #{offset VkPhysicalDevicePointClippingProperties, pNext}
+        type FieldIsArray "pNext" VkPhysicalDevicePointClippingProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevicePointClippingProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDevicePointClippingProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePointClippingProperties, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevicePointClippingProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDevicePointClippingProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevicePointClippingProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "pointClippingBehavior"
+           VkPhysicalDevicePointClippingProperties
+         where
+        type FieldType "pointClippingBehavior"
+               VkPhysicalDevicePointClippingProperties
+             = VkPointClippingBehavior
+        type FieldOptional "pointClippingBehavior"
+               VkPhysicalDevicePointClippingProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pointClippingBehavior"
+               VkPhysicalDevicePointClippingProperties
+             =
+             #{offset VkPhysicalDevicePointClippingProperties, pointClippingBehavior}
+        type FieldIsArray "pointClippingBehavior"
+               VkPhysicalDevicePointClippingProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevicePointClippingProperties, pointClippingBehavior}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pointClippingBehavior"
+           VkPhysicalDevicePointClippingProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePointClippingProperties, pointClippingBehavior})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevicePointClippingProperties, pointClippingBehavior}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pointClippingBehavior"
+           VkPhysicalDevicePointClippingProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevicePointClippingProperties, pointClippingBehavior}
+
+instance Show VkPhysicalDevicePointClippingProperties where
+        showsPrec d x
+          = showString "VkPhysicalDevicePointClippingProperties {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "pointClippingBehavior = " .
+                            showsPrec d (getField @"pointClippingBehavior" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDevicePointClippingProperties`
+type VkPhysicalDevicePointClippingPropertiesKHR =
+     VkPhysicalDevicePointClippingProperties
+
+-- | > typedef struct VkPhysicalDeviceProperties {
+--   >     uint32_t       apiVersion;
+--   >     uint32_t       driverVersion;
+--   >     uint32_t       vendorID;
+--   >     uint32_t       deviceID;
+--   >     VkPhysicalDeviceType deviceType;
+--   >     char           deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
+--   >     uint8_t        pipelineCacheUUID[VK_UUID_SIZE];
+--   >     VkPhysicalDeviceLimits limits;
+--   >     VkPhysicalDeviceSparseProperties sparseProperties;
+--   > } VkPhysicalDeviceProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceProperties VkPhysicalDeviceProperties registry at www.khronos.org>
+type VkPhysicalDeviceProperties =
+     VulkanStruct VkPhysicalDeviceProperties' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceProperties' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceProperties where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceProperties where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceProperties where
+        sizeOf ~_ = #{size VkPhysicalDeviceProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkPhysicalDeviceProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceProperties where
+        type StructFields VkPhysicalDeviceProperties =
+             '["apiVersion", "driverVersion", "vendorID", "deviceID", -- ' closing tick for hsc2hs
+               "deviceType", "deviceName", "pipelineCacheUUID", "limits",
+               "sparseProperties"]
+        type CUnionType VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceProperties = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "apiVersion" VkPhysicalDeviceProperties where
+        type FieldType "apiVersion" VkPhysicalDeviceProperties = Word32
+        type FieldOptional "apiVersion" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "apiVersion" VkPhysicalDeviceProperties =
+             #{offset VkPhysicalDeviceProperties, apiVersion}
+        type FieldIsArray "apiVersion" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties, apiVersion}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "apiVersion" VkPhysicalDeviceProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, apiVersion})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProperties, apiVersion}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "apiVersion" VkPhysicalDeviceProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProperties, apiVersion}
+
+instance {-# OVERLAPPING #-}
+         HasField "driverVersion" VkPhysicalDeviceProperties where
+        type FieldType "driverVersion" VkPhysicalDeviceProperties = Word32
+        type FieldOptional "driverVersion" VkPhysicalDeviceProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "driverVersion" VkPhysicalDeviceProperties =
+             #{offset VkPhysicalDeviceProperties, driverVersion}
+        type FieldIsArray "driverVersion" VkPhysicalDeviceProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties, driverVersion}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "driverVersion" VkPhysicalDeviceProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, driverVersion})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProperties, driverVersion}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "driverVersion" VkPhysicalDeviceProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProperties, driverVersion}
+
+instance {-# OVERLAPPING #-}
+         HasField "vendorID" VkPhysicalDeviceProperties where
+        type FieldType "vendorID" VkPhysicalDeviceProperties = Word32
+        type FieldOptional "vendorID" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "vendorID" VkPhysicalDeviceProperties =
+             #{offset VkPhysicalDeviceProperties, vendorID}
+        type FieldIsArray "vendorID" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties, vendorID}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "vendorID" VkPhysicalDeviceProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, vendorID})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProperties, vendorID}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "vendorID" VkPhysicalDeviceProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProperties, vendorID}
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceID" VkPhysicalDeviceProperties where
+        type FieldType "deviceID" VkPhysicalDeviceProperties = Word32
+        type FieldOptional "deviceID" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "deviceID" VkPhysicalDeviceProperties =
+             #{offset VkPhysicalDeviceProperties, deviceID}
+        type FieldIsArray "deviceID" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties, deviceID}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "deviceID" VkPhysicalDeviceProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, deviceID})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProperties, deviceID}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "deviceID" VkPhysicalDeviceProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProperties, deviceID}
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceType" VkPhysicalDeviceProperties where
+        type FieldType "deviceType" VkPhysicalDeviceProperties =
+             VkPhysicalDeviceType
+        type FieldOptional "deviceType" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "deviceType" VkPhysicalDeviceProperties =
+             #{offset VkPhysicalDeviceProperties, deviceType}
+        type FieldIsArray "deviceType" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties, deviceType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "deviceType" VkPhysicalDeviceProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, deviceType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProperties, deviceType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "deviceType" VkPhysicalDeviceProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProperties, deviceType}
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceName" VkPhysicalDeviceProperties where
+        type FieldType "deviceName" VkPhysicalDeviceProperties = CChar
+        type FieldOptional "deviceName" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "deviceName" VkPhysicalDeviceProperties =
+             #{offset VkPhysicalDeviceProperties, deviceName}
+        type FieldIsArray "deviceName" VkPhysicalDeviceProperties = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties, deviceName}
+
+instance {-# OVERLAPPING #-}
+         CanReadFieldArray "deviceName" VkPhysicalDeviceProperties where
+        type FieldArrayLength "deviceName" VkPhysicalDeviceProperties =
+             VK_MAX_PHYSICAL_DEVICE_NAME_SIZE
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = VK_MAX_PHYSICAL_DEVICE_NAME_SIZE
+
+        {-# INLINE getFieldArrayUnsafe #-}
+        getFieldArrayUnsafe i = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceProperties, deviceName} +
+                      sizeOf (undefined :: CChar) * i
+
+        {-# INLINE readFieldArrayUnsafe #-}
+        readFieldArrayUnsafe i p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceProperties, deviceName} +
+                 sizeOf (undefined :: CChar) * i)
+
+instance {-# OVERLAPPING #-}
+         CanWriteFieldArray "deviceName" VkPhysicalDeviceProperties where
+        {-# INLINE writeFieldArrayUnsafe #-}
+        writeFieldArrayUnsafe i p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceProperties, deviceName} +
+                 sizeOf (undefined :: CChar) * i)
+
+instance {-# OVERLAPPING #-}
+         HasField "pipelineCacheUUID" VkPhysicalDeviceProperties where
+        type FieldType "pipelineCacheUUID" VkPhysicalDeviceProperties =
+             Word8
+        type FieldOptional "pipelineCacheUUID" VkPhysicalDeviceProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pipelineCacheUUID" VkPhysicalDeviceProperties =
+             #{offset VkPhysicalDeviceProperties, pipelineCacheUUID}
+        type FieldIsArray "pipelineCacheUUID" VkPhysicalDeviceProperties =
+             'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties, pipelineCacheUUID}
+
+instance {-# OVERLAPPING #-}
+         CanReadFieldArray "pipelineCacheUUID" VkPhysicalDeviceProperties
+         where
+        type FieldArrayLength "pipelineCacheUUID"
+               VkPhysicalDeviceProperties
+             = VK_UUID_SIZE
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = VK_UUID_SIZE
+
+        {-# INLINE getFieldArrayUnsafe #-}
+        getFieldArrayUnsafe i = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceProperties, pipelineCacheUUID}
+                      + sizeOf (undefined :: Word8) * i
+
+        {-# INLINE readFieldArrayUnsafe #-}
+        readFieldArrayUnsafe i p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceProperties, pipelineCacheUUID}
+                 + sizeOf (undefined :: Word8) * i)
+
+instance {-# OVERLAPPING #-}
+         CanWriteFieldArray "pipelineCacheUUID" VkPhysicalDeviceProperties
+         where
+        {-# INLINE writeFieldArrayUnsafe #-}
+        writeFieldArrayUnsafe i p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceProperties, pipelineCacheUUID}
+                 + sizeOf (undefined :: Word8) * i)
+
+instance {-# OVERLAPPING #-}
+         HasField "limits" VkPhysicalDeviceProperties where
+        type FieldType "limits" VkPhysicalDeviceProperties =
+             VkPhysicalDeviceLimits
+        type FieldOptional "limits" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "limits" VkPhysicalDeviceProperties =
+             #{offset VkPhysicalDeviceProperties, limits}
+        type FieldIsArray "limits" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties, limits}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "limits" VkPhysicalDeviceProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, limits})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProperties, limits}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "limits" VkPhysicalDeviceProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProperties, limits}
+
+instance {-# OVERLAPPING #-}
+         HasField "sparseProperties" VkPhysicalDeviceProperties where
+        type FieldType "sparseProperties" VkPhysicalDeviceProperties =
+             VkPhysicalDeviceSparseProperties
+        type FieldOptional "sparseProperties" VkPhysicalDeviceProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sparseProperties" VkPhysicalDeviceProperties =
+             #{offset VkPhysicalDeviceProperties, sparseProperties}
+        type FieldIsArray "sparseProperties" VkPhysicalDeviceProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties, sparseProperties}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sparseProperties" VkPhysicalDeviceProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, sparseProperties})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProperties, sparseProperties}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sparseProperties" VkPhysicalDeviceProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProperties, sparseProperties}
+
+instance Show VkPhysicalDeviceProperties where
+        showsPrec d x
+          = showString "VkPhysicalDeviceProperties {" .
+              showString "apiVersion = " .
+                showsPrec d (getField @"apiVersion" x) .
+                  showString ", " .
+                    showString "driverVersion = " .
+                      showsPrec d (getField @"driverVersion" x) .
+                        showString ", " .
+                          showString "vendorID = " .
+                            showsPrec d (getField @"vendorID" x) .
+                              showString ", " .
+                                showString "deviceID = " .
+                                  showsPrec d (getField @"deviceID" x) .
+                                    showString ", " .
+                                      showString "deviceType = " .
+                                        showsPrec d (getField @"deviceType" x) .
+                                          showString ", " .
+                                            (showString "deviceName = [" .
+                                               showsPrec d
+                                                 (let s = sizeOf
+                                                            (undefined ::
+                                                               FieldType "deviceName"
+                                                                 VkPhysicalDeviceProperties)
+                                                      o = fieldOffset @"deviceName"
+                                                            @VkPhysicalDeviceProperties
+                                                      f i
+                                                        = peekByteOff (unsafePtr x) i ::
+                                                            IO
+                                                              (FieldType "deviceName"
+                                                                 VkPhysicalDeviceProperties)
+                                                    in
+                                                    unsafeDupablePerformIO . mapM f $
+                                                      map (\ i -> o + i * s)
+                                                        [0 .. VK_MAX_PHYSICAL_DEVICE_NAME_SIZE - 1])
+                                                 . showChar ']')
+                                              .
+                                              showString ", " .
+                                                (showString "pipelineCacheUUID = [" .
+                                                   showsPrec d
+                                                     (let s = sizeOf
+                                                                (undefined ::
+                                                                   FieldType "pipelineCacheUUID"
+                                                                     VkPhysicalDeviceProperties)
+                                                          o = fieldOffset @"pipelineCacheUUID"
+                                                                @VkPhysicalDeviceProperties
+                                                          f i
+                                                            = peekByteOff (unsafePtr x) i ::
+                                                                IO
+                                                                  (FieldType "pipelineCacheUUID"
+                                                                     VkPhysicalDeviceProperties)
+                                                        in
+                                                        unsafeDupablePerformIO . mapM f $
+                                                          map (\ i -> o + i * s)
+                                                            [0 .. VK_UUID_SIZE - 1])
+                                                     . showChar ']')
+                                                  .
+                                                  showString ", " .
+                                                    showString "limits = " .
+                                                      showsPrec d (getField @"limits" x) .
+                                                        showString ", " .
+                                                          showString "sparseProperties = " .
+                                                            showsPrec d
+                                                              (getField @"sparseProperties" x)
+                                                              . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceProperties2 {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkPhysicalDeviceProperties       properties;
+--   > } VkPhysicalDeviceProperties2;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2 registry at www.khronos.org>
+type VkPhysicalDeviceProperties2 =
+     VulkanStruct VkPhysicalDeviceProperties2' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceProperties2' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceProperties2 where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceProperties2 where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceProperties2 where
+        sizeOf ~_ = #{size VkPhysicalDeviceProperties2}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkPhysicalDeviceProperties2}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceProperties2 where
+        type StructFields VkPhysicalDeviceProperties2 =
+             '["sType", "pNext", "properties"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceProperties2 = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceProperties2 = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceProperties2 where
+        type FieldType "sType" VkPhysicalDeviceProperties2 =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceProperties2 =
+             #{offset VkPhysicalDeviceProperties2, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties2, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceProperties2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceProperties2 where
+        type FieldType "pNext" VkPhysicalDeviceProperties2 = Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceProperties2 =
+             #{offset VkPhysicalDeviceProperties2, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties2, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceProperties2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "properties" VkPhysicalDeviceProperties2 where
+        type FieldType "properties" VkPhysicalDeviceProperties2 =
+             VkPhysicalDeviceProperties
+        type FieldOptional "properties" VkPhysicalDeviceProperties2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "properties" VkPhysicalDeviceProperties2 =
+             #{offset VkPhysicalDeviceProperties2, properties}
+        type FieldIsArray "properties" VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties2, properties}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "properties" VkPhysicalDeviceProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties2, properties})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProperties2, properties}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "properties" VkPhysicalDeviceProperties2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProperties2, properties}
+
+instance Show VkPhysicalDeviceProperties2 where
+        showsPrec d x
+          = showString "VkPhysicalDeviceProperties2 {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "properties = " .
+                            showsPrec d (getField @"properties" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceProperties2`
+type VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2
+
+-- | > typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
+--   >     VkStructureType sType;
+--   >     void*                               pNext;
+--   >     VkBool32                            protectedMemory;
+--   > } VkPhysicalDeviceProtectedMemoryFeatures;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceProtectedMemoryFeatures VkPhysicalDeviceProtectedMemoryFeatures registry at www.khronos.org>
+type VkPhysicalDeviceProtectedMemoryFeatures =
+     VulkanStruct VkPhysicalDeviceProtectedMemoryFeatures' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceProtectedMemoryFeatures' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceProtectedMemoryFeatures where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceProtectedMemoryFeatures where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceProtectedMemoryFeatures where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceProtectedMemoryFeatures}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceProtectedMemoryFeatures}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceProtectedMemoryFeatures
+         where
+        type StructFields VkPhysicalDeviceProtectedMemoryFeatures =
+             '["sType", "pNext", "protectedMemory"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceProtectedMemoryFeatures = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceProtectedMemoryFeatures = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceProtectedMemoryFeatures =
+             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceProtectedMemoryFeatures where
+        type FieldType "sType" VkPhysicalDeviceProtectedMemoryFeatures =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceProtectedMemoryFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceProtectedMemoryFeatures =
+             #{offset VkPhysicalDeviceProtectedMemoryFeatures, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceProtectedMemoryFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProtectedMemoryFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceProtectedMemoryFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryFeatures, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceProtectedMemoryFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceProtectedMemoryFeatures where
+        type FieldType "pNext" VkPhysicalDeviceProtectedMemoryFeatures =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceProtectedMemoryFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceProtectedMemoryFeatures =
+             #{offset VkPhysicalDeviceProtectedMemoryFeatures, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceProtectedMemoryFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProtectedMemoryFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceProtectedMemoryFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryFeatures, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceProtectedMemoryFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "protectedMemory" VkPhysicalDeviceProtectedMemoryFeatures
+         where
+        type FieldType "protectedMemory"
+               VkPhysicalDeviceProtectedMemoryFeatures
+             = VkBool32
+        type FieldOptional "protectedMemory"
+               VkPhysicalDeviceProtectedMemoryFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "protectedMemory"
+               VkPhysicalDeviceProtectedMemoryFeatures
+             =
+             #{offset VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory}
+        type FieldIsArray "protectedMemory"
+               VkPhysicalDeviceProtectedMemoryFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "protectedMemory"
+           VkPhysicalDeviceProtectedMemoryFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "protectedMemory"
+           VkPhysicalDeviceProtectedMemoryFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory}
+
+instance Show VkPhysicalDeviceProtectedMemoryFeatures where
+        showsPrec d x
+          = showString "VkPhysicalDeviceProtectedMemoryFeatures {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "protectedMemory = " .
+                            showsPrec d (getField @"protectedMemory" x) . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceProtectedMemoryProperties {
+--   >     VkStructureType sType;
+--   >     void*                               pNext;
+--   >     VkBool32                            protectedNoFault;
+--   > } VkPhysicalDeviceProtectedMemoryProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceProtectedMemoryProperties VkPhysicalDeviceProtectedMemoryProperties registry at www.khronos.org>
+type VkPhysicalDeviceProtectedMemoryProperties =
+     VulkanStruct VkPhysicalDeviceProtectedMemoryProperties' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceProtectedMemoryProperties' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceProtectedMemoryProperties where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceProtectedMemoryProperties where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceProtectedMemoryProperties where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceProtectedMemoryProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceProtectedMemoryProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceProtectedMemoryProperties
+         where
+        type StructFields VkPhysicalDeviceProtectedMemoryProperties =
+             '["sType", "pNext", "protectedNoFault"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceProtectedMemoryProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceProtectedMemoryProperties =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceProtectedMemoryProperties =
+             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceProtectedMemoryProperties where
+        type FieldType "sType" VkPhysicalDeviceProtectedMemoryProperties =
+             VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceProtectedMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceProtectedMemoryProperties
+             =
+             #{offset VkPhysicalDeviceProtectedMemoryProperties, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceProtectedMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProtectedMemoryProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceProtectedMemoryProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryProperties, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceProtectedMemoryProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceProtectedMemoryProperties where
+        type FieldType "pNext" VkPhysicalDeviceProtectedMemoryProperties =
+             Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceProtectedMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceProtectedMemoryProperties
+             =
+             #{offset VkPhysicalDeviceProtectedMemoryProperties, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceProtectedMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProtectedMemoryProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceProtectedMemoryProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryProperties, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceProtectedMemoryProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "protectedNoFault"
+           VkPhysicalDeviceProtectedMemoryProperties
+         where
+        type FieldType "protectedNoFault"
+               VkPhysicalDeviceProtectedMemoryProperties
+             = VkBool32
+        type FieldOptional "protectedNoFault"
+               VkPhysicalDeviceProtectedMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "protectedNoFault"
+               VkPhysicalDeviceProtectedMemoryProperties
+             =
+             #{offset VkPhysicalDeviceProtectedMemoryProperties, protectedNoFault}
+        type FieldIsArray "protectedNoFault"
+               VkPhysicalDeviceProtectedMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProtectedMemoryProperties, protectedNoFault}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "protectedNoFault"
+           VkPhysicalDeviceProtectedMemoryProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryProperties, protectedNoFault})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, protectedNoFault}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "protectedNoFault"
+           VkPhysicalDeviceProtectedMemoryProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, protectedNoFault}
+
+instance Show VkPhysicalDeviceProtectedMemoryProperties where
+        showsPrec d x
+          = showString "VkPhysicalDeviceProtectedMemoryProperties {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "protectedNoFault = " .
+                            showsPrec d (getField @"protectedNoFault" x) . showChar '}'
+
+-- | > typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     uint32_t                         maxPushDescriptors;
+--   > } VkPhysicalDevicePushDescriptorPropertiesKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDevicePushDescriptorPropertiesKHR VkPhysicalDevicePushDescriptorPropertiesKHR registry at www.khronos.org>
+type VkPhysicalDevicePushDescriptorPropertiesKHR =
+     VulkanStruct VkPhysicalDevicePushDescriptorPropertiesKHR' -- ' closing tick for hsc2hs
+
+data VkPhysicalDevicePushDescriptorPropertiesKHR' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDevicePushDescriptorPropertiesKHR where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDevicePushDescriptorPropertiesKHR where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDevicePushDescriptorPropertiesKHR where
+        sizeOf ~_
+          = #{size VkPhysicalDevicePushDescriptorPropertiesKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDevicePushDescriptorPropertiesKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDevicePushDescriptorPropertiesKHR
+         where
+        type StructFields VkPhysicalDevicePushDescriptorPropertiesKHR =
+             '["sType", "pNext", "maxPushDescriptors"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDevicePushDescriptorPropertiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDevicePushDescriptorPropertiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDevicePushDescriptorPropertiesKHR =
+             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDevicePushDescriptorPropertiesKHR where
+        type FieldType "sType" VkPhysicalDevicePushDescriptorPropertiesKHR
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDevicePushDescriptorPropertiesKHR
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDevicePushDescriptorPropertiesKHR
+             =
+             #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDevicePushDescriptorPropertiesKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDevicePushDescriptorPropertiesKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDevicePushDescriptorPropertiesKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDevicePushDescriptorPropertiesKHR where
+        type FieldType "pNext" VkPhysicalDevicePushDescriptorPropertiesKHR
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDevicePushDescriptorPropertiesKHR
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDevicePushDescriptorPropertiesKHR
+             =
+             #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDevicePushDescriptorPropertiesKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDevicePushDescriptorPropertiesKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDevicePushDescriptorPropertiesKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPushDescriptors"
+           VkPhysicalDevicePushDescriptorPropertiesKHR
+         where
+        type FieldType "maxPushDescriptors"
+               VkPhysicalDevicePushDescriptorPropertiesKHR
+             = Word32
+        type FieldOptional "maxPushDescriptors"
+               VkPhysicalDevicePushDescriptorPropertiesKHR
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPushDescriptors"
+               VkPhysicalDevicePushDescriptorPropertiesKHR
+             =
+             #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, maxPushDescriptors}
+        type FieldIsArray "maxPushDescriptors"
+               VkPhysicalDevicePushDescriptorPropertiesKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, maxPushDescriptors}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPushDescriptors"
+           VkPhysicalDevicePushDescriptorPropertiesKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, maxPushDescriptors})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, maxPushDescriptors}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPushDescriptors"
+           VkPhysicalDevicePushDescriptorPropertiesKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, maxPushDescriptors}
+
+instance Show VkPhysicalDevicePushDescriptorPropertiesKHR where
+        showsPrec d x
+          = showString "VkPhysicalDevicePushDescriptorPropertiesKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "maxPushDescriptors = " .
+                            showsPrec d (getField @"maxPushDescriptors" x) . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkSampleCountFlags               sampleLocationSampleCounts;
+--   >     VkExtent2D                       maxSampleLocationGridSize;
+--   >     float                            sampleLocationCoordinateRange[2];
+--   >     uint32_t                         sampleLocationSubPixelBits;
+--   >     VkBool32                         variableSampleLocations;
+--   > } VkPhysicalDeviceSampleLocationsPropertiesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSampleLocationsPropertiesEXT VkPhysicalDeviceSampleLocationsPropertiesEXT registry at www.khronos.org>
+type VkPhysicalDeviceSampleLocationsPropertiesEXT =
+     VulkanStruct VkPhysicalDeviceSampleLocationsPropertiesEXT' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceSampleLocationsPropertiesEXT' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceSampleLocationsPropertiesEXT where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceSampleLocationsPropertiesEXT where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceSampleLocationsPropertiesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceSampleLocationsPropertiesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        type StructFields VkPhysicalDeviceSampleLocationsPropertiesEXT =
+             '["sType", "pNext", "sampleLocationSampleCounts", -- ' closing tick for hsc2hs
+               "maxSampleLocationGridSize", "sampleLocationCoordinateRange",
+               "sampleLocationSubPixelBits", "variableSampleLocations"]
+        type CUnionType VkPhysicalDeviceSampleLocationsPropertiesEXT =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceSampleLocationsPropertiesEXT =
+             'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceSampleLocationsPropertiesEXT =
+             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceSampleLocationsPropertiesEXT where
+        type FieldType "sType" VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceSampleLocationsPropertiesEXT where
+        type FieldType "pNext" VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampleLocationSampleCounts"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        type FieldType "sampleLocationSampleCounts"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = VkSampleCountFlags
+        type FieldOptional "sampleLocationSampleCounts"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sampleLocationSampleCounts"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSampleCounts}
+        type FieldIsArray "sampleLocationSampleCounts"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampleLocationSampleCounts"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampleLocationSampleCounts"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxSampleLocationGridSize"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        type FieldType "maxSampleLocationGridSize"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = VkExtent2D
+        type FieldOptional "maxSampleLocationGridSize"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxSampleLocationGridSize"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, maxSampleLocationGridSize}
+        type FieldIsArray "maxSampleLocationGridSize"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, maxSampleLocationGridSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxSampleLocationGridSize"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, maxSampleLocationGridSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, maxSampleLocationGridSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxSampleLocationGridSize"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, maxSampleLocationGridSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampleLocationCoordinateRange"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        type FieldType "sampleLocationCoordinateRange"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = #{type float}
+        type FieldOptional "sampleLocationCoordinateRange"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sampleLocationCoordinateRange"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}
+        type FieldIsArray "sampleLocationCoordinateRange"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}
+
+instance {-# OVERLAPPING #-}
+         CanReadFieldArray "sampleLocationCoordinateRange"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        type FieldArrayLength "sampleLocationCoordinateRange"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 2
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 2
+
+        {-# INLINE getFieldArrayUnsafe #-}
+        getFieldArrayUnsafe i = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}
+                      + sizeOf (undefined :: #{type float}) * i
+
+        {-# INLINE readFieldArrayUnsafe #-}
+        readFieldArrayUnsafe i p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}
+                 + sizeOf (undefined :: #{type float}) * i)
+
+instance {-# OVERLAPPING #-}
+         CanWriteFieldArray "sampleLocationCoordinateRange"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# INLINE writeFieldArrayUnsafe #-}
+        writeFieldArrayUnsafe i p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}
+                 + sizeOf (undefined :: #{type float}) * i)
+
+instance {-# OVERLAPPING #-}
+         HasField "sampleLocationSubPixelBits"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        type FieldType "sampleLocationSubPixelBits"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = Word32
+        type FieldOptional "sampleLocationSubPixelBits"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sampleLocationSubPixelBits"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSubPixelBits}
+        type FieldIsArray "sampleLocationSubPixelBits"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSubPixelBits}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampleLocationSubPixelBits"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSubPixelBits})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSubPixelBits}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampleLocationSubPixelBits"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSubPixelBits}
+
+instance {-# OVERLAPPING #-}
+         HasField "variableSampleLocations"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        type FieldType "variableSampleLocations"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = VkBool32
+        type FieldOptional "variableSampleLocations"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "variableSampleLocations"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, variableSampleLocations}
+        type FieldIsArray "variableSampleLocations"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, variableSampleLocations}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "variableSampleLocations"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, variableSampleLocations})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, variableSampleLocations}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "variableSampleLocations"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, variableSampleLocations}
+
+instance Show VkPhysicalDeviceSampleLocationsPropertiesEXT where
+        showsPrec d x
+          = showString "VkPhysicalDeviceSampleLocationsPropertiesEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "sampleLocationSampleCounts = " .
+                            showsPrec d (getField @"sampleLocationSampleCounts" x) .
+                              showString ", " .
+                                showString "maxSampleLocationGridSize = " .
+                                  showsPrec d (getField @"maxSampleLocationGridSize" x) .
+                                    showString ", " .
+                                      (showString "sampleLocationCoordinateRange = [" .
+                                         showsPrec d
+                                           (let s = sizeOf
+                                                      (undefined ::
+                                                         FieldType "sampleLocationCoordinateRange"
+                                                           VkPhysicalDeviceSampleLocationsPropertiesEXT)
+                                                o = fieldOffset @"sampleLocationCoordinateRange"
+                                                      @VkPhysicalDeviceSampleLocationsPropertiesEXT
+                                                f i
+                                                  = peekByteOff (unsafePtr x) i ::
+                                                      IO
+                                                        (FieldType "sampleLocationCoordinateRange"
+                                                           VkPhysicalDeviceSampleLocationsPropertiesEXT)
+                                              in
+                                              unsafeDupablePerformIO . mapM f $
+                                                map (\ i -> o + i * s) [0 .. 2 - 1])
+                                           . showChar ']')
+                                        .
+                                        showString ", " .
+                                          showString "sampleLocationSubPixelBits = " .
+                                            showsPrec d (getField @"sampleLocationSubPixelBits" x) .
+                                              showString ", " .
+                                                showString "variableSampleLocations = " .
+                                                  showsPrec d
+                                                    (getField @"variableSampleLocations" x)
+                                                    . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
+--   >     VkStructureType sType;
+--   >     void*                  pNext;
+--   >     VkBool32               filterMinmaxSingleComponentFormats;
+--   >     VkBool32               filterMinmaxImageComponentMapping;
+--   > } VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT registry at www.khronos.org>
+type VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT =
+     VulkanStruct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        type StructFields VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             =
+             '["sType", "pNext", "filterMinmaxSingleComponentFormats", -- ' closing tick for hsc2hs
+               "filterMinmaxImageComponentMapping"]
+        type CUnionType VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType"
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext"
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "filterMinmaxSingleComponentFormats"
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        type FieldType "filterMinmaxSingleComponentFormats"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = VkBool32
+        type FieldOptional "filterMinmaxSingleComponentFormats"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "filterMinmaxSingleComponentFormats"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxSingleComponentFormats}
+        type FieldIsArray "filterMinmaxSingleComponentFormats"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxSingleComponentFormats}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "filterMinmaxSingleComponentFormats"
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxSingleComponentFormats})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxSingleComponentFormats}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "filterMinmaxSingleComponentFormats"
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxSingleComponentFormats}
+
+instance {-# OVERLAPPING #-}
+         HasField "filterMinmaxImageComponentMapping"
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        type FieldType "filterMinmaxImageComponentMapping"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = VkBool32
+        type FieldOptional "filterMinmaxImageComponentMapping"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "filterMinmaxImageComponentMapping"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxImageComponentMapping}
+        type FieldIsArray "filterMinmaxImageComponentMapping"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxImageComponentMapping}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "filterMinmaxImageComponentMapping"
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxImageComponentMapping})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxImageComponentMapping}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "filterMinmaxImageComponentMapping"
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxImageComponentMapping}
+
+instance Show VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        showsPrec d x
+          = showString "VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "filterMinmaxSingleComponentFormats = " .
+                            showsPrec d (getField @"filterMinmaxSingleComponentFormats" x) .
+                              showString ", " .
+                                showString "filterMinmaxImageComponentMapping = " .
+                                  showsPrec d (getField @"filterMinmaxImageComponentMapping" x) .
+                                    showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
+--   >     VkStructureType sType;
+--   >     void*      pNext;
+--   >     VkBool32                         samplerYcbcrConversion;
+--   > } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeatures registry at www.khronos.org>
+type VkPhysicalDeviceSamplerYcbcrConversionFeatures =
+     VulkanStruct VkPhysicalDeviceSamplerYcbcrConversionFeatures' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceSamplerYcbcrConversionFeatures' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceSamplerYcbcrConversionFeatures where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceSamplerYcbcrConversionFeatures where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceSamplerYcbcrConversionFeatures}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceSamplerYcbcrConversionFeatures}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        type StructFields VkPhysicalDeviceSamplerYcbcrConversionFeatures =
+             '["sType", "pNext", "samplerYcbcrConversion"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceSamplerYcbcrConversionFeatures =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceSamplerYcbcrConversionFeatures =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceSamplerYcbcrConversionFeatures =
+             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             =
+             #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             =
+             #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "samplerYcbcrConversion"
+           VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        type FieldType "samplerYcbcrConversion"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             = VkBool32
+        type FieldOptional "samplerYcbcrConversion"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "samplerYcbcrConversion"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             =
+             #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion}
+        type FieldIsArray "samplerYcbcrConversion"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "samplerYcbcrConversion"
+           VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "samplerYcbcrConversion"
+           VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion}
+
+instance Show VkPhysicalDeviceSamplerYcbcrConversionFeatures where
+        showsPrec d x
+          = showString "VkPhysicalDeviceSamplerYcbcrConversionFeatures {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "samplerYcbcrConversion = " .
+                            showsPrec d (getField @"samplerYcbcrConversion" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceSamplerYcbcrConversionFeatures`
+type VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR =
+     VkPhysicalDeviceSamplerYcbcrConversionFeatures
+
+-- | > typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
+--   >     VkStructureType sType;
+--   >     void*    pNext;
+--   >     uint32_t shaderEngineCount;
+--   >     uint32_t shaderArraysPerEngineCount;
+--   >     uint32_t computeUnitsPerShaderArray;
+--   >     uint32_t simdPerComputeUnit;
+--   >     uint32_t wavefrontsPerSimd;
+--   >     uint32_t wavefrontSize;
+--   >     uint32_t sgprsPerSimd;
+--   >     uint32_t minSgprAllocation;
+--   >     uint32_t maxSgprAllocation;
+--   >     uint32_t sgprAllocationGranularity;
+--   >     uint32_t vgprsPerSimd;
+--   >     uint32_t minVgprAllocation;
+--   >     uint32_t maxVgprAllocation;
+--   >     uint32_t vgprAllocationGranularity;
+--   > } VkPhysicalDeviceShaderCorePropertiesAMD;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceShaderCorePropertiesAMD VkPhysicalDeviceShaderCorePropertiesAMD registry at www.khronos.org>
+type VkPhysicalDeviceShaderCorePropertiesAMD =
+     VulkanStruct VkPhysicalDeviceShaderCorePropertiesAMD' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceShaderCorePropertiesAMD' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceShaderCorePropertiesAMD where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceShaderCorePropertiesAMD where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceShaderCorePropertiesAMD where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceShaderCorePropertiesAMD}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceShaderCorePropertiesAMD}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type StructFields VkPhysicalDeviceShaderCorePropertiesAMD =
+             '["sType", "pNext", "shaderEngineCount", -- ' closing tick for hsc2hs
+               "shaderArraysPerEngineCount", "computeUnitsPerShaderArray",
+               "simdPerComputeUnit", "wavefrontsPerSimd", "wavefrontSize",
+               "sgprsPerSimd", "minSgprAllocation", "maxSgprAllocation",
+               "sgprAllocationGranularity", "vgprsPerSimd", "minVgprAllocation",
+               "maxVgprAllocation", "vgprAllocationGranularity"]
+        type CUnionType VkPhysicalDeviceShaderCorePropertiesAMD = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceShaderCorePropertiesAMD = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceShaderCorePropertiesAMD =
+             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceShaderCorePropertiesAMD where
+        type FieldType "sType" VkPhysicalDeviceShaderCorePropertiesAMD =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceShaderCorePropertiesAMD =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceShaderCorePropertiesAMD =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceShaderCorePropertiesAMD where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceShaderCorePropertiesAMD where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceShaderCorePropertiesAMD where
+        type FieldType "pNext" VkPhysicalDeviceShaderCorePropertiesAMD =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceShaderCorePropertiesAMD =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceShaderCorePropertiesAMD =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceShaderCorePropertiesAMD where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceShaderCorePropertiesAMD where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderEngineCount"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "shaderEngineCount"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "shaderEngineCount"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderEngineCount"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderEngineCount}
+        type FieldIsArray "shaderEngineCount"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderEngineCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderEngineCount"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderEngineCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderEngineCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderEngineCount"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderEngineCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderArraysPerEngineCount"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "shaderArraysPerEngineCount"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "shaderArraysPerEngineCount"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderArraysPerEngineCount"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderArraysPerEngineCount}
+        type FieldIsArray "shaderArraysPerEngineCount"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderArraysPerEngineCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderArraysPerEngineCount"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderArraysPerEngineCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderArraysPerEngineCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderArraysPerEngineCount"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderArraysPerEngineCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "computeUnitsPerShaderArray"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "computeUnitsPerShaderArray"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "computeUnitsPerShaderArray"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "computeUnitsPerShaderArray"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, computeUnitsPerShaderArray}
+        type FieldIsArray "computeUnitsPerShaderArray"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, computeUnitsPerShaderArray}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "computeUnitsPerShaderArray"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, computeUnitsPerShaderArray})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, computeUnitsPerShaderArray}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "computeUnitsPerShaderArray"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, computeUnitsPerShaderArray}
+
+instance {-# OVERLAPPING #-}
+         HasField "simdPerComputeUnit"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "simdPerComputeUnit"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "simdPerComputeUnit"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "simdPerComputeUnit"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, simdPerComputeUnit}
+        type FieldIsArray "simdPerComputeUnit"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, simdPerComputeUnit}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "simdPerComputeUnit"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, simdPerComputeUnit})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, simdPerComputeUnit}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "simdPerComputeUnit"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, simdPerComputeUnit}
+
+instance {-# OVERLAPPING #-}
+         HasField "wavefrontsPerSimd"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "wavefrontsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "wavefrontsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "wavefrontsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontsPerSimd}
+        type FieldIsArray "wavefrontsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontsPerSimd}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "wavefrontsPerSimd"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontsPerSimd})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontsPerSimd}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "wavefrontsPerSimd"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontsPerSimd}
+
+instance {-# OVERLAPPING #-}
+         HasField "wavefrontSize" VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "wavefrontSize"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "wavefrontSize"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "wavefrontSize"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontSize}
+        type FieldIsArray "wavefrontSize"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "wavefrontSize"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "wavefrontSize"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "sgprsPerSimd" VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "sgprsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "sgprsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sgprsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprsPerSimd}
+        type FieldIsArray "sgprsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprsPerSimd}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sgprsPerSimd" VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprsPerSimd})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprsPerSimd}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sgprsPerSimd"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprsPerSimd}
+
+instance {-# OVERLAPPING #-}
+         HasField "minSgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "minSgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "minSgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minSgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minSgprAllocation}
+        type FieldIsArray "minSgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minSgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minSgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minSgprAllocation})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minSgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minSgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minSgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxSgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "maxSgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "maxSgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxSgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxSgprAllocation}
+        type FieldIsArray "maxSgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxSgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxSgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxSgprAllocation})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxSgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxSgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxSgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         HasField "sgprAllocationGranularity"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "sgprAllocationGranularity"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "sgprAllocationGranularity"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sgprAllocationGranularity"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprAllocationGranularity}
+        type FieldIsArray "sgprAllocationGranularity"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprAllocationGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sgprAllocationGranularity"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprAllocationGranularity})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprAllocationGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sgprAllocationGranularity"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprAllocationGranularity}
+
+instance {-# OVERLAPPING #-}
+         HasField "vgprsPerSimd" VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "vgprsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "vgprsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "vgprsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprsPerSimd}
+        type FieldIsArray "vgprsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprsPerSimd}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "vgprsPerSimd" VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprsPerSimd})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprsPerSimd}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "vgprsPerSimd"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprsPerSimd}
+
+instance {-# OVERLAPPING #-}
+         HasField "minVgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "minVgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "minVgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minVgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minVgprAllocation}
+        type FieldIsArray "minVgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minVgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minVgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minVgprAllocation})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minVgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minVgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minVgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxVgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "maxVgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "maxVgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxVgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxVgprAllocation}
+        type FieldIsArray "maxVgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxVgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxVgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxVgprAllocation})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxVgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxVgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxVgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         HasField "vgprAllocationGranularity"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "vgprAllocationGranularity"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "vgprAllocationGranularity"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "vgprAllocationGranularity"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprAllocationGranularity}
+        type FieldIsArray "vgprAllocationGranularity"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprAllocationGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "vgprAllocationGranularity"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprAllocationGranularity})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprAllocationGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "vgprAllocationGranularity"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprAllocationGranularity}
+
+instance Show VkPhysicalDeviceShaderCorePropertiesAMD where
+        showsPrec d x
+          = showString "VkPhysicalDeviceShaderCorePropertiesAMD {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "shaderEngineCount = " .
+                            showsPrec d (getField @"shaderEngineCount" x) .
+                              showString ", " .
+                                showString "shaderArraysPerEngineCount = " .
+                                  showsPrec d (getField @"shaderArraysPerEngineCount" x) .
+                                    showString ", " .
+                                      showString "computeUnitsPerShaderArray = " .
+                                        showsPrec d (getField @"computeUnitsPerShaderArray" x) .
+                                          showString ", " .
+                                            showString "simdPerComputeUnit = " .
+                                              showsPrec d (getField @"simdPerComputeUnit" x) .
+                                                showString ", " .
+                                                  showString "wavefrontsPerSimd = " .
+                                                    showsPrec d (getField @"wavefrontsPerSimd" x) .
+                                                      showString ", " .
+                                                        showString "wavefrontSize = " .
+                                                          showsPrec d (getField @"wavefrontSize" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString "sgprsPerSimd = " .
+                                                                showsPrec d
+                                                                  (getField @"sgprsPerSimd" x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString
+                                                                      "minSgprAllocation = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"minSgprAllocation"
+                                                                           x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "maxSgprAllocation = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"maxSgprAllocation"
+                                                                                 x)
+                                                                              .
+                                                                              showString ", " .
+                                                                                showString
+                                                                                  "sgprAllocationGranularity = "
+                                                                                  .
+                                                                                  showsPrec d
+                                                                                    (getField
+                                                                                       @"sgprAllocationGranularity"
+                                                                                       x)
+                                                                                    .
+                                                                                    showString ", "
+                                                                                      .
+                                                                                      showString
+                                                                                        "vgprsPerSimd = "
+                                                                                        .
+                                                                                        showsPrec d
+                                                                                          (getField
+                                                                                             @"vgprsPerSimd"
+                                                                                             x)
+                                                                                          .
+                                                                                          showString
+                                                                                            ", "
+                                                                                            .
+                                                                                            showString
+                                                                                              "minVgprAllocation = "
+                                                                                              .
+                                                                                              showsPrec
+                                                                                                d
+                                                                                                (getField
+                                                                                                   @"minVgprAllocation"
+                                                                                                   x)
+                                                                                                .
+                                                                                                showString
+                                                                                                  ", "
+                                                                                                  .
+                                                                                                  showString
+                                                                                                    "maxVgprAllocation = "
+                                                                                                    .
+                                                                                                    showsPrec
+                                                                                                      d
+                                                                                                      (getField
+                                                                                                         @"maxVgprAllocation"
+                                                                                                         x)
+                                                                                                      .
+                                                                                                      showString
+                                                                                                        ", "
+                                                                                                        .
+                                                                                                        showString
+                                                                                                          "vgprAllocationGranularity = "
+                                                                                                          .
+                                                                                                          showsPrec
+                                                                                                            d
+                                                                                                            (getField
+                                                                                                               @"vgprAllocationGranularity"
+                                                                                                               x)
+                                                                                                            .
+                                                                                                            showChar
+                                                                                                              '}'
+
+-- | > typedef struct VkPhysicalDeviceShaderDrawParameterFeatures {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkBool32                         shaderDrawParameters;
+--   > } VkPhysicalDeviceShaderDrawParameterFeatures;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceShaderDrawParameterFeatures VkPhysicalDeviceShaderDrawParameterFeatures registry at www.khronos.org>
+type VkPhysicalDeviceShaderDrawParameterFeatures =
+     VulkanStruct VkPhysicalDeviceShaderDrawParameterFeatures' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceShaderDrawParameterFeatures' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceShaderDrawParameterFeatures where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceShaderDrawParameterFeatures where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceShaderDrawParameterFeatures where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceShaderDrawParameterFeatures}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceShaderDrawParameterFeatures}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceShaderDrawParameterFeatures
+         where
+        type StructFields VkPhysicalDeviceShaderDrawParameterFeatures =
+             '["sType", "pNext", "shaderDrawParameters"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceShaderDrawParameterFeatures =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceShaderDrawParameterFeatures =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceShaderDrawParameterFeatures =
+             '[VkPhysicalDeviceFeatures2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceShaderDrawParameterFeatures where
+        type FieldType "sType" VkPhysicalDeviceShaderDrawParameterFeatures
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceShaderDrawParameterFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceShaderDrawParameterFeatures
+             =
+             #{offset VkPhysicalDeviceShaderDrawParameterFeatures, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceShaderDrawParameterFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderDrawParameterFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceShaderDrawParameterFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderDrawParameterFeatures, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceShaderDrawParameterFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceShaderDrawParameterFeatures where
+        type FieldType "pNext" VkPhysicalDeviceShaderDrawParameterFeatures
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceShaderDrawParameterFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceShaderDrawParameterFeatures
+             =
+             #{offset VkPhysicalDeviceShaderDrawParameterFeatures, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceShaderDrawParameterFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderDrawParameterFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceShaderDrawParameterFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderDrawParameterFeatures, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceShaderDrawParameterFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderDrawParameters"
+           VkPhysicalDeviceShaderDrawParameterFeatures
+         where
+        type FieldType "shaderDrawParameters"
+               VkPhysicalDeviceShaderDrawParameterFeatures
+             = VkBool32
+        type FieldOptional "shaderDrawParameters"
+               VkPhysicalDeviceShaderDrawParameterFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderDrawParameters"
+               VkPhysicalDeviceShaderDrawParameterFeatures
+             =
+             #{offset VkPhysicalDeviceShaderDrawParameterFeatures, shaderDrawParameters}
+        type FieldIsArray "shaderDrawParameters"
+               VkPhysicalDeviceShaderDrawParameterFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderDrawParameterFeatures, shaderDrawParameters}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderDrawParameters"
+           VkPhysicalDeviceShaderDrawParameterFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderDrawParameterFeatures, shaderDrawParameters})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, shaderDrawParameters}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderDrawParameters"
+           VkPhysicalDeviceShaderDrawParameterFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, shaderDrawParameters}
+
+instance Show VkPhysicalDeviceShaderDrawParameterFeatures where
+        showsPrec d x
+          = showString "VkPhysicalDeviceShaderDrawParameterFeatures {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "shaderDrawParameters = " .
+                            showsPrec d (getField @"shaderDrawParameters" x) . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkFormat                         format;
+--   >     VkImageType                      type;
+--   >     VkSampleCountFlagBits            samples;
+--   >     VkImageUsageFlags                usage;
+--   >     VkImageTiling                    tiling;
+--   > } VkPhysicalDeviceSparseImageFormatInfo2;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2 registry at www.khronos.org>
+type VkPhysicalDeviceSparseImageFormatInfo2 =
+     VulkanStruct VkPhysicalDeviceSparseImageFormatInfo2' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceSparseImageFormatInfo2' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceSparseImageFormatInfo2 where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceSparseImageFormatInfo2 where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceSparseImageFormatInfo2 where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceSparseImageFormatInfo2}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceSparseImageFormatInfo2}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceSparseImageFormatInfo2 where
+        type StructFields VkPhysicalDeviceSparseImageFormatInfo2 =
+             '["sType", "pNext", "format", "type", "samples", "usage", "tiling"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceSparseImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceSparseImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceSparseImageFormatInfo2 = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceSparseImageFormatInfo2 where
+        type FieldType "sType" VkPhysicalDeviceSparseImageFormatInfo2 =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceSparseImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceSparseImageFormatInfo2 =
+             #{offset VkPhysicalDeviceSparseImageFormatInfo2, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceSparseImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceSparseImageFormatInfo2 where
+        type FieldType "pNext" VkPhysicalDeviceSparseImageFormatInfo2 =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceSparseImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceSparseImageFormatInfo2 =
+             #{offset VkPhysicalDeviceSparseImageFormatInfo2, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceSparseImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "format" VkPhysicalDeviceSparseImageFormatInfo2 where
+        type FieldType "format" VkPhysicalDeviceSparseImageFormatInfo2 =
+             VkFormat
+        type FieldOptional "format" VkPhysicalDeviceSparseImageFormatInfo2
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "format" VkPhysicalDeviceSparseImageFormatInfo2 =
+             #{offset VkPhysicalDeviceSparseImageFormatInfo2, format}
+        type FieldIsArray "format" VkPhysicalDeviceSparseImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, format}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "format" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, format})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, format}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "format" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, format}
+
+instance {-# OVERLAPPING #-}
+         HasField "type" VkPhysicalDeviceSparseImageFormatInfo2 where
+        type FieldType "type" VkPhysicalDeviceSparseImageFormatInfo2 =
+             VkImageType
+        type FieldOptional "type" VkPhysicalDeviceSparseImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "type" VkPhysicalDeviceSparseImageFormatInfo2 =
+             #{offset VkPhysicalDeviceSparseImageFormatInfo2, type}
+        type FieldIsArray "type" VkPhysicalDeviceSparseImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, type}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "type" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, type})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, type}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "type" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, type}
+
+instance {-# OVERLAPPING #-}
+         HasField "samples" VkPhysicalDeviceSparseImageFormatInfo2 where
+        type FieldType "samples" VkPhysicalDeviceSparseImageFormatInfo2 =
+             VkSampleCountFlagBits
+        type FieldOptional "samples" VkPhysicalDeviceSparseImageFormatInfo2
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "samples" VkPhysicalDeviceSparseImageFormatInfo2 =
+             #{offset VkPhysicalDeviceSparseImageFormatInfo2, samples}
+        type FieldIsArray "samples" VkPhysicalDeviceSparseImageFormatInfo2
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, samples}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "samples" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, samples})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, samples}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "samples" VkPhysicalDeviceSparseImageFormatInfo2
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, samples}
+
+instance {-# OVERLAPPING #-}
+         HasField "usage" VkPhysicalDeviceSparseImageFormatInfo2 where
+        type FieldType "usage" VkPhysicalDeviceSparseImageFormatInfo2 =
+             VkImageUsageFlags
+        type FieldOptional "usage" VkPhysicalDeviceSparseImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "usage" VkPhysicalDeviceSparseImageFormatInfo2 =
+             #{offset VkPhysicalDeviceSparseImageFormatInfo2, usage}
+        type FieldIsArray "usage" VkPhysicalDeviceSparseImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, usage}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "usage" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, usage})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, usage}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "usage" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, usage}
+
+instance {-# OVERLAPPING #-}
+         HasField "tiling" VkPhysicalDeviceSparseImageFormatInfo2 where
+        type FieldType "tiling" VkPhysicalDeviceSparseImageFormatInfo2 =
+             VkImageTiling
+        type FieldOptional "tiling" VkPhysicalDeviceSparseImageFormatInfo2
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "tiling" VkPhysicalDeviceSparseImageFormatInfo2 =
+             #{offset VkPhysicalDeviceSparseImageFormatInfo2, tiling}
+        type FieldIsArray "tiling" VkPhysicalDeviceSparseImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, tiling}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "tiling" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, tiling})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, tiling}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "tiling" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, tiling}
+
+instance Show VkPhysicalDeviceSparseImageFormatInfo2 where
+        showsPrec d x
+          = showString "VkPhysicalDeviceSparseImageFormatInfo2 {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "format = " .
+                            showsPrec d (getField @"format" x) .
+                              showString ", " .
+                                showString "type = " .
+                                  showsPrec d (getField @"type" x) .
+                                    showString ", " .
+                                      showString "samples = " .
+                                        showsPrec d (getField @"samples" x) .
+                                          showString ", " .
+                                            showString "usage = " .
+                                              showsPrec d (getField @"usage" x) .
+                                                showString ", " .
+                                                  showString "tiling = " .
+                                                    showsPrec d (getField @"tiling" x) .
+                                                      showChar '}'
+
+-- | Alias for `VkPhysicalDeviceSparseImageFormatInfo2`
+type VkPhysicalDeviceSparseImageFormatInfo2KHR =
+     VkPhysicalDeviceSparseImageFormatInfo2
+
+-- | > typedef struct VkPhysicalDeviceSparseProperties {
+--   >     VkBool32               residencyStandard2DBlockShape;
+--   >     VkBool32               residencyStandard2DMultisampleBlockShape;
+--   >     VkBool32               residencyStandard3DBlockShape;
+--   >     VkBool32               residencyAlignedMipSize;
+--   >     VkBool32               residencyNonResidentStrict;
+--   > } VkPhysicalDeviceSparseProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSparseProperties VkPhysicalDeviceSparseProperties registry at www.khronos.org>
+type VkPhysicalDeviceSparseProperties =
+     VulkanStruct VkPhysicalDeviceSparseProperties' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceSparseProperties' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceSparseProperties where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceSparseProperties where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceSparseProperties where
+        sizeOf ~_ = #{size VkPhysicalDeviceSparseProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceSparseProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceSparseProperties where
+        type StructFields VkPhysicalDeviceSparseProperties =
+             '["residencyStandard2DBlockShape", -- ' closing tick for hsc2hs
+               "residencyStandard2DMultisampleBlockShape",
+               "residencyStandard3DBlockShape", "residencyAlignedMipSize",
+               "residencyNonResidentStrict"]
+        type CUnionType VkPhysicalDeviceSparseProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceSparseProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceSparseProperties = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "residencyStandard2DBlockShape"
+           VkPhysicalDeviceSparseProperties
+         where
+        type FieldType "residencyStandard2DBlockShape"
+               VkPhysicalDeviceSparseProperties
+             = VkBool32
+        type FieldOptional "residencyStandard2DBlockShape"
+               VkPhysicalDeviceSparseProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "residencyStandard2DBlockShape"
+               VkPhysicalDeviceSparseProperties
+             =
+             #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DBlockShape}
+        type FieldIsArray "residencyStandard2DBlockShape"
+               VkPhysicalDeviceSparseProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DBlockShape}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "residencyStandard2DBlockShape"
+           VkPhysicalDeviceSparseProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DBlockShape})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DBlockShape}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "residencyStandard2DBlockShape"
+           VkPhysicalDeviceSparseProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DBlockShape}
+
+instance {-# OVERLAPPING #-}
+         HasField "residencyStandard2DMultisampleBlockShape"
+           VkPhysicalDeviceSparseProperties
+         where
+        type FieldType "residencyStandard2DMultisampleBlockShape"
+               VkPhysicalDeviceSparseProperties
+             = VkBool32
+        type FieldOptional "residencyStandard2DMultisampleBlockShape"
+               VkPhysicalDeviceSparseProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "residencyStandard2DMultisampleBlockShape"
+               VkPhysicalDeviceSparseProperties
+             =
+             #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DMultisampleBlockShape}
+        type FieldIsArray "residencyStandard2DMultisampleBlockShape"
+               VkPhysicalDeviceSparseProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DMultisampleBlockShape}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "residencyStandard2DMultisampleBlockShape"
+           VkPhysicalDeviceSparseProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DMultisampleBlockShape})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DMultisampleBlockShape}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "residencyStandard2DMultisampleBlockShape"
+           VkPhysicalDeviceSparseProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DMultisampleBlockShape}
+
+instance {-# OVERLAPPING #-}
+         HasField "residencyStandard3DBlockShape"
+           VkPhysicalDeviceSparseProperties
+         where
+        type FieldType "residencyStandard3DBlockShape"
+               VkPhysicalDeviceSparseProperties
+             = VkBool32
+        type FieldOptional "residencyStandard3DBlockShape"
+               VkPhysicalDeviceSparseProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "residencyStandard3DBlockShape"
+               VkPhysicalDeviceSparseProperties
+             =
+             #{offset VkPhysicalDeviceSparseProperties, residencyStandard3DBlockShape}
+        type FieldIsArray "residencyStandard3DBlockShape"
+               VkPhysicalDeviceSparseProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseProperties, residencyStandard3DBlockShape}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "residencyStandard3DBlockShape"
+           VkPhysicalDeviceSparseProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseProperties, residencyStandard3DBlockShape})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard3DBlockShape}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "residencyStandard3DBlockShape"
+           VkPhysicalDeviceSparseProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard3DBlockShape}
+
+instance {-# OVERLAPPING #-}
+         HasField "residencyAlignedMipSize" VkPhysicalDeviceSparseProperties
+         where
+        type FieldType "residencyAlignedMipSize"
+               VkPhysicalDeviceSparseProperties
+             = VkBool32
+        type FieldOptional "residencyAlignedMipSize"
+               VkPhysicalDeviceSparseProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "residencyAlignedMipSize"
+               VkPhysicalDeviceSparseProperties
+             =
+             #{offset VkPhysicalDeviceSparseProperties, residencyAlignedMipSize}
+        type FieldIsArray "residencyAlignedMipSize"
+               VkPhysicalDeviceSparseProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseProperties, residencyAlignedMipSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "residencyAlignedMipSize"
+           VkPhysicalDeviceSparseProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseProperties, residencyAlignedMipSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyAlignedMipSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "residencyAlignedMipSize"
+           VkPhysicalDeviceSparseProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyAlignedMipSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "residencyNonResidentStrict"
+           VkPhysicalDeviceSparseProperties
+         where
+        type FieldType "residencyNonResidentStrict"
+               VkPhysicalDeviceSparseProperties
+             = VkBool32
+        type FieldOptional "residencyNonResidentStrict"
+               VkPhysicalDeviceSparseProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "residencyNonResidentStrict"
+               VkPhysicalDeviceSparseProperties
+             =
+             #{offset VkPhysicalDeviceSparseProperties, residencyNonResidentStrict}
+        type FieldIsArray "residencyNonResidentStrict"
+               VkPhysicalDeviceSparseProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseProperties, residencyNonResidentStrict}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "residencyNonResidentStrict"
+           VkPhysicalDeviceSparseProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseProperties, residencyNonResidentStrict})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyNonResidentStrict}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "residencyNonResidentStrict"
+           VkPhysicalDeviceSparseProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyNonResidentStrict}
+
+instance Show VkPhysicalDeviceSparseProperties where
+        showsPrec d x
+          = showString "VkPhysicalDeviceSparseProperties {" .
+              showString "residencyStandard2DBlockShape = " .
+                showsPrec d (getField @"residencyStandard2DBlockShape" x) .
+                  showString ", " .
+                    showString "residencyStandard2DMultisampleBlockShape = " .
+                      showsPrec d
+                        (getField @"residencyStandard2DMultisampleBlockShape" x)
+                        .
+                        showString ", " .
+                          showString "residencyStandard3DBlockShape = " .
+                            showsPrec d (getField @"residencyStandard3DBlockShape" x) .
+                              showString ", " .
+                                showString "residencyAlignedMipSize = " .
+                                  showsPrec d (getField @"residencyAlignedMipSize" x) .
+                                    showString ", " .
+                                      showString "residencyNonResidentStrict = " .
+                                        showsPrec d (getField @"residencyNonResidentStrict" x) .
+                                          showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceSubgroupProperties {
+--   >     VkStructureType sType;
+--   >     void*                   pNext;
+--   >     uint32_t                      subgroupSize;
+--   >     VkShaderStageFlags            supportedStages;
+--   >     VkSubgroupFeatureFlags        supportedOperations;
+--   >     VkBool32 quadOperationsInAllStages;
+--   > } VkPhysicalDeviceSubgroupProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSubgroupProperties VkPhysicalDeviceSubgroupProperties registry at www.khronos.org>
+type VkPhysicalDeviceSubgroupProperties =
+     VulkanStruct VkPhysicalDeviceSubgroupProperties' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceSubgroupProperties' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceSubgroupProperties where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceSubgroupProperties where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceSubgroupProperties where
+        sizeOf ~_ = #{size VkPhysicalDeviceSubgroupProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceSubgroupProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceSubgroupProperties where
+        type StructFields VkPhysicalDeviceSubgroupProperties =
+             '["sType", "pNext", "subgroupSize", "supportedStages", -- ' closing tick for hsc2hs
+               "supportedOperations", "quadOperationsInAllStages"]
+        type CUnionType VkPhysicalDeviceSubgroupProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceSubgroupProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceSubgroupProperties =
+             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceSubgroupProperties where
+        type FieldType "sType" VkPhysicalDeviceSubgroupProperties =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceSubgroupProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceSubgroupProperties =
+             #{offset VkPhysicalDeviceSubgroupProperties, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceSubgroupProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSubgroupProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceSubgroupProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceSubgroupProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceSubgroupProperties where
+        type FieldType "pNext" VkPhysicalDeviceSubgroupProperties =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceSubgroupProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceSubgroupProperties =
+             #{offset VkPhysicalDeviceSubgroupProperties, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceSubgroupProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSubgroupProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceSubgroupProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceSubgroupProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "subgroupSize" VkPhysicalDeviceSubgroupProperties where
+        type FieldType "subgroupSize" VkPhysicalDeviceSubgroupProperties =
+             Word32
+        type FieldOptional "subgroupSize"
+               VkPhysicalDeviceSubgroupProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "subgroupSize" VkPhysicalDeviceSubgroupProperties
+             =
+             #{offset VkPhysicalDeviceSubgroupProperties, subgroupSize}
+        type FieldIsArray "subgroupSize" VkPhysicalDeviceSubgroupProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSubgroupProperties, subgroupSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "subgroupSize" VkPhysicalDeviceSubgroupProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, subgroupSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, subgroupSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "subgroupSize" VkPhysicalDeviceSubgroupProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, subgroupSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "supportedStages" VkPhysicalDeviceSubgroupProperties where
+        type FieldType "supportedStages" VkPhysicalDeviceSubgroupProperties
+             = VkShaderStageFlags
+        type FieldOptional "supportedStages"
+               VkPhysicalDeviceSubgroupProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "supportedStages"
+               VkPhysicalDeviceSubgroupProperties
+             =
+             #{offset VkPhysicalDeviceSubgroupProperties, supportedStages}
+        type FieldIsArray "supportedStages"
+               VkPhysicalDeviceSubgroupProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSubgroupProperties, supportedStages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "supportedStages" VkPhysicalDeviceSubgroupProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, supportedStages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, supportedStages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "supportedStages" VkPhysicalDeviceSubgroupProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, supportedStages}
+
+instance {-# OVERLAPPING #-}
+         HasField "supportedOperations" VkPhysicalDeviceSubgroupProperties
+         where
+        type FieldType "supportedOperations"
+               VkPhysicalDeviceSubgroupProperties
+             = VkSubgroupFeatureFlags
+        type FieldOptional "supportedOperations"
+               VkPhysicalDeviceSubgroupProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "supportedOperations"
+               VkPhysicalDeviceSubgroupProperties
+             =
+             #{offset VkPhysicalDeviceSubgroupProperties, supportedOperations}
+        type FieldIsArray "supportedOperations"
+               VkPhysicalDeviceSubgroupProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSubgroupProperties, supportedOperations}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "supportedOperations"
+           VkPhysicalDeviceSubgroupProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, supportedOperations})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, supportedOperations}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "supportedOperations"
+           VkPhysicalDeviceSubgroupProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, supportedOperations}
+
+instance {-# OVERLAPPING #-}
+         HasField "quadOperationsInAllStages"
+           VkPhysicalDeviceSubgroupProperties
+         where
+        type FieldType "quadOperationsInAllStages"
+               VkPhysicalDeviceSubgroupProperties
+             = VkBool32
+        type FieldOptional "quadOperationsInAllStages"
+               VkPhysicalDeviceSubgroupProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "quadOperationsInAllStages"
+               VkPhysicalDeviceSubgroupProperties
+             =
+             #{offset VkPhysicalDeviceSubgroupProperties, quadOperationsInAllStages}
+        type FieldIsArray "quadOperationsInAllStages"
+               VkPhysicalDeviceSubgroupProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSubgroupProperties, quadOperationsInAllStages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "quadOperationsInAllStages"
+           VkPhysicalDeviceSubgroupProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, quadOperationsInAllStages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, quadOperationsInAllStages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "quadOperationsInAllStages"
+           VkPhysicalDeviceSubgroupProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, quadOperationsInAllStages}
+
+instance Show VkPhysicalDeviceSubgroupProperties where
+        showsPrec d x
+          = showString "VkPhysicalDeviceSubgroupProperties {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "subgroupSize = " .
+                            showsPrec d (getField @"subgroupSize" x) .
+                              showString ", " .
+                                showString "supportedStages = " .
+                                  showsPrec d (getField @"supportedStages" x) .
+                                    showString ", " .
+                                      showString "supportedOperations = " .
+                                        showsPrec d (getField @"supportedOperations" x) .
+                                          showString ", " .
+                                            showString "quadOperationsInAllStages = " .
+                                              showsPrec d (getField @"quadOperationsInAllStages" x)
+                                                . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
+--   >     VkStructureType sType;
+--   >     const void* pNext;
+--   >     VkSurfaceKHR surface;
+--   > } VkPhysicalDeviceSurfaceInfo2KHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSurfaceInfo2KHR VkPhysicalDeviceSurfaceInfo2KHR registry at www.khronos.org>
+type VkPhysicalDeviceSurfaceInfo2KHR =
+     VulkanStruct VkPhysicalDeviceSurfaceInfo2KHR' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceSurfaceInfo2KHR' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceSurfaceInfo2KHR where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceSurfaceInfo2KHR where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceSurfaceInfo2KHR where
+        sizeOf ~_ = #{size VkPhysicalDeviceSurfaceInfo2KHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceSurfaceInfo2KHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceSurfaceInfo2KHR where
+        type StructFields VkPhysicalDeviceSurfaceInfo2KHR =
+             '["sType", "pNext", "surface"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceSurfaceInfo2KHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceSurfaceInfo2KHR where
+        type FieldType "sType" VkPhysicalDeviceSurfaceInfo2KHR =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceSurfaceInfo2KHR =
+             #{offset VkPhysicalDeviceSurfaceInfo2KHR, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSurfaceInfo2KHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceSurfaceInfo2KHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSurfaceInfo2KHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceSurfaceInfo2KHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceSurfaceInfo2KHR where
+        type FieldType "pNext" VkPhysicalDeviceSurfaceInfo2KHR = Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceSurfaceInfo2KHR =
+             #{offset VkPhysicalDeviceSurfaceInfo2KHR, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSurfaceInfo2KHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceSurfaceInfo2KHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSurfaceInfo2KHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceSurfaceInfo2KHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "surface" VkPhysicalDeviceSurfaceInfo2KHR where
+        type FieldType "surface" VkPhysicalDeviceSurfaceInfo2KHR =
+             VkSurfaceKHR
+        type FieldOptional "surface" VkPhysicalDeviceSurfaceInfo2KHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "surface" VkPhysicalDeviceSurfaceInfo2KHR =
+             #{offset VkPhysicalDeviceSurfaceInfo2KHR, surface}
+        type FieldIsArray "surface" VkPhysicalDeviceSurfaceInfo2KHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSurfaceInfo2KHR, surface}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "surface" VkPhysicalDeviceSurfaceInfo2KHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSurfaceInfo2KHR, surface})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, surface}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "surface" VkPhysicalDeviceSurfaceInfo2KHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, surface}
+
+instance Show VkPhysicalDeviceSurfaceInfo2KHR where
+        showsPrec d x
+          = showString "VkPhysicalDeviceSurfaceInfo2KHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "surface = " .
+                            showsPrec d (getField @"surface" x) . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceVariablePointerFeatures {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkBool32                         variablePointersStorageBuffer;
+--   >     VkBool32                         variablePointers;
+--   > } VkPhysicalDeviceVariablePointerFeatures;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceVariablePointerFeatures VkPhysicalDeviceVariablePointerFeatures registry at www.khronos.org>
+type VkPhysicalDeviceVariablePointerFeatures =
+     VulkanStruct VkPhysicalDeviceVariablePointerFeatures' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceVariablePointerFeatures' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceVariablePointerFeatures where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceVariablePointerFeatures where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceVariablePointerFeatures where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceVariablePointerFeatures}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceVariablePointerFeatures}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshal VkPhysicalDeviceVariablePointerFeatures
+         where
+        type StructFields VkPhysicalDeviceVariablePointerFeatures =
+             '["sType", "pNext", "variablePointersStorageBuffer", -- ' closing tick for hsc2hs
+               "variablePointers"]
+        type CUnionType VkPhysicalDeviceVariablePointerFeatures = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceVariablePointerFeatures = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceVariablePointerFeatures =
+             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceVariablePointerFeatures where
+        type FieldType "sType" VkPhysicalDeviceVariablePointerFeatures =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceVariablePointerFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceVariablePointerFeatures =
+             #{offset VkPhysicalDeviceVariablePointerFeatures, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceVariablePointerFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceVariablePointerFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceVariablePointerFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVariablePointerFeatures, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceVariablePointerFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceVariablePointerFeatures where
+        type FieldType "pNext" VkPhysicalDeviceVariablePointerFeatures =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceVariablePointerFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceVariablePointerFeatures =
+             #{offset VkPhysicalDeviceVariablePointerFeatures, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceVariablePointerFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceVariablePointerFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceVariablePointerFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVariablePointerFeatures, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceVariablePointerFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "variablePointersStorageBuffer"
+           VkPhysicalDeviceVariablePointerFeatures
+         where
+        type FieldType "variablePointersStorageBuffer"
+               VkPhysicalDeviceVariablePointerFeatures
+             = VkBool32
+        type FieldOptional "variablePointersStorageBuffer"
+               VkPhysicalDeviceVariablePointerFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "variablePointersStorageBuffer"
+               VkPhysicalDeviceVariablePointerFeatures
+             =
+             #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointersStorageBuffer}
+        type FieldIsArray "variablePointersStorageBuffer"
+               VkPhysicalDeviceVariablePointerFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointersStorageBuffer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "variablePointersStorageBuffer"
+           VkPhysicalDeviceVariablePointerFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointersStorageBuffer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointersStorageBuffer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "variablePointersStorageBuffer"
+           VkPhysicalDeviceVariablePointerFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointersStorageBuffer}
+
+instance {-# OVERLAPPING #-}
+         HasField "variablePointers" VkPhysicalDeviceVariablePointerFeatures
+         where
+        type FieldType "variablePointers"
+               VkPhysicalDeviceVariablePointerFeatures
+             = VkBool32
+        type FieldOptional "variablePointers"
+               VkPhysicalDeviceVariablePointerFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "variablePointers"
+               VkPhysicalDeviceVariablePointerFeatures
+             =
+             #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointers}
+        type FieldIsArray "variablePointers"
+               VkPhysicalDeviceVariablePointerFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "variablePointers"
+           VkPhysicalDeviceVariablePointerFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "variablePointers"
+           VkPhysicalDeviceVariablePointerFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointers}
+
+instance Show VkPhysicalDeviceVariablePointerFeatures where
+        showsPrec d x
+          = showString "VkPhysicalDeviceVariablePointerFeatures {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "variablePointersStorageBuffer = " .
+                            showsPrec d (getField @"variablePointersStorageBuffer" x) .
+                              showString ", " .
+                                showString "variablePointers = " .
+                                  showsPrec d (getField @"variablePointers" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceVariablePointerFeatures`
+type VkPhysicalDeviceVariablePointerFeaturesKHR =
+     VkPhysicalDeviceVariablePointerFeatures
+
+-- | > typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
+--   >     VkStructureType sType;
+--   >     void*                  pNext;
+--   >     uint32_t               maxVertexAttribDivisor;
+--   > } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT registry at www.khronos.org>
+type VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT =
+     VulkanStruct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT' -- ' closing tick for hsc2hs
+
+data VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT' -- ' closing tick for hsc2hs
+
+instance Eq VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+         where
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+         where
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
+
+        {-# INLINE compare #-}
+
+instance Storable
+           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
 
 instance VulkanMarshal
            VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PhysicalDeviceFeatures.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PhysicalDeviceFeatures.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/PhysicalDeviceFeatures.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PhysicalDeviceFeatures.hsc
@@ -8,15 +8,12 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures
-       (VkPhysicalDeviceFeatures(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Base                         (Addr##, ByteArray##,
-                                                   byteArrayContents##,
-                                                   plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes  (VkBool32)
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+       (VkPhysicalDeviceFeatures, VkPhysicalDeviceFeatures') where -- ' closing tick for hsc2hs
+import Foreign.Storable                 (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes  (VkBool32)
+import System.IO.Unsafe                 (unsafeDupablePerformIO)
 
 -- | > typedef struct VkPhysicalDeviceFeatures {
 --   >     VkBool32               robustBufferAccess;
@@ -77,18 +74,18 @@
 --   > } VkPhysicalDeviceFeatures;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceFeatures VkPhysicalDeviceFeatures registry at www.khronos.org>
-data VkPhysicalDeviceFeatures = VkPhysicalDeviceFeatures## Addr##
-                                                          ByteArray##
+type VkPhysicalDeviceFeatures =
+     VulkanStruct VkPhysicalDeviceFeatures' -- ' closing tick for hsc2hs
 
+data VkPhysicalDeviceFeatures' -- ' closing tick for hsc2hs
+
 instance Eq VkPhysicalDeviceFeatures where
-        (VkPhysicalDeviceFeatures## a _) ==
-          x@(VkPhysicalDeviceFeatures## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPhysicalDeviceFeatures where
-        (VkPhysicalDeviceFeatures## a _) `compare`
-          x@(VkPhysicalDeviceFeatures## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -105,19 +102,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceFeatures where
-        unsafeAddr (VkPhysicalDeviceFeatures## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceFeatures## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceFeatures## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkPhysicalDeviceFeatures where
         type StructFields VkPhysicalDeviceFeatures =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Pipeline.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Pipeline.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Pipeline.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Pipeline.hsc
@@ -12,99 +12,112 @@
 {-# LANGUAGE TypeFamilies          #-}
 {-# LANGUAGE UndecidableInstances  #-}
 module Graphics.Vulkan.Types.Struct.Pipeline
-       (VkGraphicsPipelineCreateInfo(..), VkPipelineCacheCreateInfo(..),
-        VkPipelineColorBlendAdvancedStateCreateInfoEXT(..),
-        VkPipelineColorBlendAttachmentState(..),
-        VkPipelineColorBlendStateCreateInfo(..),
-        VkPipelineCoverageModulationStateCreateInfoNV(..),
-        VkPipelineCoverageToColorStateCreateInfoNV(..),
-        VkPipelineDepthStencilStateCreateInfo(..),
-        VkPipelineDiscardRectangleStateCreateInfoEXT(..),
-        VkPipelineDynamicStateCreateInfo(..),
-        VkPipelineInputAssemblyStateCreateInfo(..),
-        VkPipelineLayoutCreateInfo(..),
-        VkPipelineMultisampleStateCreateInfo(..),
-        VkPipelineRasterizationConservativeStateCreateInfoEXT(..),
-        VkPipelineRasterizationStateCreateInfo(..),
-        VkPipelineRasterizationStateRasterizationOrderAMD(..),
-        VkPipelineSampleLocationsStateCreateInfoEXT(..),
-        VkPipelineShaderStageCreateInfo(..),
-        VkPipelineTessellationDomainOriginStateCreateInfo(..),
+       (VkGraphicsPipelineCreateInfo, VkGraphicsPipelineCreateInfo', -- ' closing tick for hsc2hs
+        VkPipelineCacheCreateInfo, VkPipelineCacheCreateInfo', -- ' closing tick for hsc2hs
+        VkPipelineColorBlendAdvancedStateCreateInfoEXT,
+        VkPipelineColorBlendAdvancedStateCreateInfoEXT', -- ' closing tick for hsc2hs
+        VkPipelineColorBlendAttachmentState,
+        VkPipelineColorBlendAttachmentState', -- ' closing tick for hsc2hs
+        VkPipelineColorBlendStateCreateInfo,
+        VkPipelineColorBlendStateCreateInfo', -- ' closing tick for hsc2hs
+        VkPipelineCoverageModulationStateCreateInfoNV,
+        VkPipelineCoverageModulationStateCreateInfoNV', -- ' closing tick for hsc2hs
+        VkPipelineCoverageToColorStateCreateInfoNV,
+        VkPipelineCoverageToColorStateCreateInfoNV', -- ' closing tick for hsc2hs
+        VkPipelineDepthStencilStateCreateInfo,
+        VkPipelineDepthStencilStateCreateInfo', -- ' closing tick for hsc2hs
+        VkPipelineDiscardRectangleStateCreateInfoEXT,
+        VkPipelineDiscardRectangleStateCreateInfoEXT', -- ' closing tick for hsc2hs
+        VkPipelineDynamicStateCreateInfo,
+        VkPipelineDynamicStateCreateInfo', -- ' closing tick for hsc2hs
+        VkPipelineInputAssemblyStateCreateInfo,
+        VkPipelineInputAssemblyStateCreateInfo', -- ' closing tick for hsc2hs
+        VkPipelineLayoutCreateInfo, VkPipelineLayoutCreateInfo', -- ' closing tick for hsc2hs
+        VkPipelineMultisampleStateCreateInfo,
+        VkPipelineMultisampleStateCreateInfo', -- ' closing tick for hsc2hs
+        VkPipelineRasterizationConservativeStateCreateInfoEXT,
+        VkPipelineRasterizationConservativeStateCreateInfoEXT', -- ' closing tick for hsc2hs
+        VkPipelineRasterizationStateCreateInfo,
+        VkPipelineRasterizationStateCreateInfo', -- ' closing tick for hsc2hs
+        VkPipelineRasterizationStateRasterizationOrderAMD,
+        VkPipelineRasterizationStateRasterizationOrderAMD', -- ' closing tick for hsc2hs
+        VkPipelineSampleLocationsStateCreateInfoEXT,
+        VkPipelineSampleLocationsStateCreateInfoEXT', -- ' closing tick for hsc2hs
+        VkPipelineShaderStageCreateInfo, VkPipelineShaderStageCreateInfo', -- ' closing tick for hsc2hs
+        VkPipelineTessellationDomainOriginStateCreateInfo,
+        VkPipelineTessellationDomainOriginStateCreateInfo', -- ' closing tick for hsc2hs
         VkPipelineTessellationDomainOriginStateCreateInfoKHR,
-        VkPipelineTessellationStateCreateInfo(..),
-        VkPipelineVertexInputDivisorStateCreateInfoEXT(..),
-        VkPipelineVertexInputStateCreateInfo(..),
-        VkPipelineViewportStateCreateInfo(..),
-        VkPipelineViewportSwizzleStateCreateInfoNV(..),
-        VkPipelineViewportWScalingStateCreateInfoNV(..))
+        VkPipelineTessellationStateCreateInfo,
+        VkPipelineTessellationStateCreateInfo', -- ' closing tick for hsc2hs
+        VkPipelineVertexInputDivisorStateCreateInfoEXT,
+        VkPipelineVertexInputDivisorStateCreateInfoEXT', -- ' closing tick for hsc2hs
+        VkPipelineVertexInputStateCreateInfo,
+        VkPipelineVertexInputStateCreateInfo', -- ' closing tick for hsc2hs
+        VkPipelineViewportStateCreateInfo,
+        VkPipelineViewportStateCreateInfo', -- ' closing tick for hsc2hs
+        VkPipelineViewportSwizzleStateCreateInfoNV,
+        VkPipelineViewportSwizzleStateCreateInfoNV', -- ' closing tick for hsc2hs
+        VkPipelineViewportWScalingStateCreateInfoNV,
+        VkPipelineViewportWScalingStateCreateInfoNV') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                                            (Storable (..))
-import           GHC.Base                                                    (Addr##,
-                                                                              ByteArray##,
-                                                                              Proxy##,
-                                                                              byteArrayContents##,
-                                                                              plusAddr##,
-                                                                              proxy##)
-import           GHC.TypeLits                                                (KnownNat,
-                                                                              natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                             (VkBool32,
-                                                                              VkSampleMask)
-import           Graphics.Vulkan.Types.Bitmasks                              (VkPipelineCacheCreateFlags,
-                                                                              VkPipelineColorBlendStateCreateFlags,
-                                                                              VkPipelineCoverageModulationStateCreateFlagsNV,
-                                                                              VkPipelineCoverageToColorStateCreateFlagsNV,
-                                                                              VkPipelineDepthStencilStateCreateFlags,
-                                                                              VkPipelineDiscardRectangleStateCreateFlagsEXT,
-                                                                              VkPipelineDynamicStateCreateFlags,
-                                                                              VkPipelineInputAssemblyStateCreateFlags,
-                                                                              VkPipelineLayoutCreateFlags,
-                                                                              VkPipelineMultisampleStateCreateFlags,
-                                                                              VkPipelineRasterizationConservativeStateCreateFlagsEXT,
-                                                                              VkPipelineRasterizationStateCreateFlags,
-                                                                              VkPipelineShaderStageCreateFlags,
-                                                                              VkPipelineTessellationStateCreateFlags,
-                                                                              VkPipelineVertexInputStateCreateFlags,
-                                                                              VkPipelineViewportStateCreateFlags,
-                                                                              VkPipelineViewportSwizzleStateCreateFlagsNV)
-import           Graphics.Vulkan.Types.Enum.Blend                            (VkBlendFactor,
-                                                                              VkBlendOp,
-                                                                              VkBlendOverlapEXT)
-import           Graphics.Vulkan.Types.Enum.Color                            (VkColorComponentFlags)
-import           Graphics.Vulkan.Types.Enum.CompareOp                        (VkCompareOp)
-import           Graphics.Vulkan.Types.Enum.ConservativeRasterizationModeEXT (VkConservativeRasterizationModeEXT)
-import           Graphics.Vulkan.Types.Enum.CoverageModulationModeNV         (VkCoverageModulationModeNV)
-import           Graphics.Vulkan.Types.Enum.CullModeFlags                    (VkCullModeFlags)
-import           Graphics.Vulkan.Types.Enum.DiscardRectangleModeEXT          (VkDiscardRectangleModeEXT)
-import           Graphics.Vulkan.Types.Enum.DynamicState                     (VkDynamicState)
-import           Graphics.Vulkan.Types.Enum.FrontFace                        (VkFrontFace)
-import           Graphics.Vulkan.Types.Enum.LogicOp                          (VkLogicOp)
-import           Graphics.Vulkan.Types.Enum.Pipeline                         (VkPipelineCreateFlags)
-import           Graphics.Vulkan.Types.Enum.PolygonMode                      (VkPolygonMode)
-import           Graphics.Vulkan.Types.Enum.PrimitiveTopology                (VkPrimitiveTopology)
-import           Graphics.Vulkan.Types.Enum.RasterizationOrderAMD            (VkRasterizationOrderAMD)
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags                 (VkSampleCountFlagBits)
-import           Graphics.Vulkan.Types.Enum.Shader                           (VkShaderStageFlagBits)
-import           Graphics.Vulkan.Types.Enum.StructureType                    (VkStructureType)
-import           Graphics.Vulkan.Types.Enum.TessellationDomainOrigin         (VkTessellationDomainOrigin)
-import           Graphics.Vulkan.Types.Handles                               (VkDescriptorSetLayout,
-                                                                              VkPipeline,
-                                                                              VkPipelineLayout,
-                                                                              VkRenderPass,
-                                                                              VkShaderModule)
-import           Graphics.Vulkan.Types.Struct.PushConstantRange              (VkPushConstantRange)
-import           Graphics.Vulkan.Types.Struct.Rect                           (VkRect2D)
-import           Graphics.Vulkan.Types.Struct.SampleLocation                 (VkSampleLocationsInfoEXT)
-import           Graphics.Vulkan.Types.Struct.Specialization                 (VkSpecializationInfo)
-import           Graphics.Vulkan.Types.Struct.StencilOpState                 (VkStencilOpState)
-import           Graphics.Vulkan.Types.Struct.VertexInput                    (VkVertexInputAttributeDescription,
-                                                                              VkVertexInputBindingDescription,
-                                                                              VkVertexInputBindingDivisorDescriptionEXT)
-import           Graphics.Vulkan.Types.Struct.Viewport                       (VkViewport,
-                                                                              VkViewportSwizzleNV,
-                                                                              VkViewportWScalingNV)
-import           System.IO.Unsafe                                            (unsafeDupablePerformIO)
+import Foreign.Storable                                            (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes                             (VkBool32,
+                                                                    VkSampleMask)
+import Graphics.Vulkan.Types.Bitmasks                              (VkPipelineCacheCreateFlags,
+                                                                    VkPipelineColorBlendStateCreateFlags,
+                                                                    VkPipelineCoverageModulationStateCreateFlagsNV,
+                                                                    VkPipelineCoverageToColorStateCreateFlagsNV,
+                                                                    VkPipelineDepthStencilStateCreateFlags,
+                                                                    VkPipelineDiscardRectangleStateCreateFlagsEXT,
+                                                                    VkPipelineDynamicStateCreateFlags,
+                                                                    VkPipelineInputAssemblyStateCreateFlags,
+                                                                    VkPipelineLayoutCreateFlags,
+                                                                    VkPipelineMultisampleStateCreateFlags,
+                                                                    VkPipelineRasterizationConservativeStateCreateFlagsEXT,
+                                                                    VkPipelineRasterizationStateCreateFlags,
+                                                                    VkPipelineShaderStageCreateFlags,
+                                                                    VkPipelineTessellationStateCreateFlags,
+                                                                    VkPipelineVertexInputStateCreateFlags,
+                                                                    VkPipelineViewportStateCreateFlags,
+                                                                    VkPipelineViewportSwizzleStateCreateFlagsNV)
+import Graphics.Vulkan.Types.Enum.Blend                            (VkBlendFactor,
+                                                                    VkBlendOp,
+                                                                    VkBlendOverlapEXT)
+import Graphics.Vulkan.Types.Enum.Color                            (VkColorComponentFlags)
+import Graphics.Vulkan.Types.Enum.CompareOp                        (VkCompareOp)
+import Graphics.Vulkan.Types.Enum.ConservativeRasterizationModeEXT (VkConservativeRasterizationModeEXT)
+import Graphics.Vulkan.Types.Enum.CoverageModulationModeNV         (VkCoverageModulationModeNV)
+import Graphics.Vulkan.Types.Enum.CullModeFlags                    (VkCullModeFlags)
+import Graphics.Vulkan.Types.Enum.DiscardRectangleModeEXT          (VkDiscardRectangleModeEXT)
+import Graphics.Vulkan.Types.Enum.DynamicState                     (VkDynamicState)
+import Graphics.Vulkan.Types.Enum.FrontFace                        (VkFrontFace)
+import Graphics.Vulkan.Types.Enum.LogicOp                          (VkLogicOp)
+import Graphics.Vulkan.Types.Enum.Pipeline                         (VkPipelineCreateFlags)
+import Graphics.Vulkan.Types.Enum.PolygonMode                      (VkPolygonMode)
+import Graphics.Vulkan.Types.Enum.PrimitiveTopology                (VkPrimitiveTopology)
+import Graphics.Vulkan.Types.Enum.RasterizationOrderAMD            (VkRasterizationOrderAMD)
+import Graphics.Vulkan.Types.Enum.SampleCountFlags                 (VkSampleCountFlagBits)
+import Graphics.Vulkan.Types.Enum.Shader                           (VkShaderStageFlagBits)
+import Graphics.Vulkan.Types.Enum.StructureType                    (VkStructureType)
+import Graphics.Vulkan.Types.Enum.TessellationDomainOrigin         (VkTessellationDomainOrigin)
+import Graphics.Vulkan.Types.Handles                               (VkDescriptorSetLayout,
+                                                                    VkPipeline,
+                                                                    VkPipelineLayout,
+                                                                    VkRenderPass,
+                                                                    VkShaderModule)
+import Graphics.Vulkan.Types.Struct.PushConstantRange              (VkPushConstantRange)
+import Graphics.Vulkan.Types.Struct.Rect                           (VkRect2D)
+import Graphics.Vulkan.Types.Struct.SampleLocation                 (VkSampleLocationsInfoEXT)
+import Graphics.Vulkan.Types.Struct.Specialization                 (VkSpecializationInfo)
+import Graphics.Vulkan.Types.Struct.StencilOpState                 (VkStencilOpState)
+import Graphics.Vulkan.Types.Struct.VertexInput                    (VkVertexInputAttributeDescription,
+                                                                    VkVertexInputBindingDescription,
+                                                                    VkVertexInputBindingDivisorDescriptionEXT)
+import Graphics.Vulkan.Types.Struct.Viewport                       (VkViewport, VkViewportSwizzleNV,
+                                                                    VkViewportWScalingNV)
+import System.IO.Unsafe                                            (unsafeDupablePerformIO)
 
 -- | > typedef struct VkGraphicsPipelineCreateInfo {
 --   >     VkStructureType sType;
@@ -129,19 +142,18 @@
 --   > } VkGraphicsPipelineCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkGraphicsPipelineCreateInfo VkGraphicsPipelineCreateInfo registry at www.khronos.org>
-data VkGraphicsPipelineCreateInfo = VkGraphicsPipelineCreateInfo## Addr##
-                                                                  ByteArray##
+type VkGraphicsPipelineCreateInfo =
+     VulkanStruct VkGraphicsPipelineCreateInfo' -- ' closing tick for hsc2hs
 
+data VkGraphicsPipelineCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkGraphicsPipelineCreateInfo where
-        (VkGraphicsPipelineCreateInfo## a _) ==
-          x@(VkGraphicsPipelineCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkGraphicsPipelineCreateInfo where
-        (VkGraphicsPipelineCreateInfo## a _) `compare`
-          x@(VkGraphicsPipelineCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -160,20 +172,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkGraphicsPipelineCreateInfo where
-        unsafeAddr (VkGraphicsPipelineCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkGraphicsPipelineCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkGraphicsPipelineCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkGraphicsPipelineCreateInfo where
         type StructFields VkGraphicsPipelineCreateInfo =
              '["sType", "pNext", "flags", "stageCount", "pStages", -- ' closing tick for hsc2hs
@@ -1016,18 +1014,18 @@
 --   > } VkPipelineCacheCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineCacheCreateInfo VkPipelineCacheCreateInfo registry at www.khronos.org>
-data VkPipelineCacheCreateInfo = VkPipelineCacheCreateInfo## Addr##
-                                                            ByteArray##
+type VkPipelineCacheCreateInfo =
+     VulkanStruct VkPipelineCacheCreateInfo' -- ' closing tick for hsc2hs
 
+data VkPipelineCacheCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineCacheCreateInfo where
-        (VkPipelineCacheCreateInfo## a _) ==
-          x@(VkPipelineCacheCreateInfo## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineCacheCreateInfo where
-        (VkPipelineCacheCreateInfo## a _) `compare`
-          x@(VkPipelineCacheCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1045,19 +1043,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkPipelineCacheCreateInfo where
-        unsafeAddr (VkPipelineCacheCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineCacheCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineCacheCreateInfo## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPipelineCacheCreateInfo where
         type StructFields VkPipelineCacheCreateInfo =
              '["sType", "pNext", "flags", "initialDataSize", "pInitialData"] -- ' closing tick for hsc2hs
@@ -1256,20 +1241,18 @@
 --   > } VkPipelineColorBlendAdvancedStateCreateInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineColorBlendAdvancedStateCreateInfoEXT VkPipelineColorBlendAdvancedStateCreateInfoEXT registry at www.khronos.org>
-data VkPipelineColorBlendAdvancedStateCreateInfoEXT = VkPipelineColorBlendAdvancedStateCreateInfoEXT## Addr##
-                                                                                                      ByteArray##
+type VkPipelineColorBlendAdvancedStateCreateInfoEXT =
+     VulkanStruct VkPipelineColorBlendAdvancedStateCreateInfoEXT' -- ' closing tick for hsc2hs
 
+data VkPipelineColorBlendAdvancedStateCreateInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineColorBlendAdvancedStateCreateInfoEXT where
-        (VkPipelineColorBlendAdvancedStateCreateInfoEXT## a _) ==
-          x@(VkPipelineColorBlendAdvancedStateCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineColorBlendAdvancedStateCreateInfoEXT where
-        (VkPipelineColorBlendAdvancedStateCreateInfoEXT## a _) `compare`
-          x@(VkPipelineColorBlendAdvancedStateCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1290,24 +1273,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim
-           VkPipelineColorBlendAdvancedStateCreateInfoEXT
-         where
-        unsafeAddr (VkPipelineColorBlendAdvancedStateCreateInfoEXT## a _)
-          = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPipelineColorBlendAdvancedStateCreateInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineColorBlendAdvancedStateCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal
            VkPipelineColorBlendAdvancedStateCreateInfoEXT
          where
@@ -1577,20 +1542,18 @@
 --   > } VkPipelineColorBlendAttachmentState;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineColorBlendAttachmentState VkPipelineColorBlendAttachmentState registry at www.khronos.org>
-data VkPipelineColorBlendAttachmentState = VkPipelineColorBlendAttachmentState## Addr##
-                                                                                ByteArray##
+type VkPipelineColorBlendAttachmentState =
+     VulkanStruct VkPipelineColorBlendAttachmentState' -- ' closing tick for hsc2hs
 
+data VkPipelineColorBlendAttachmentState' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineColorBlendAttachmentState where
-        (VkPipelineColorBlendAttachmentState## a _) ==
-          x@(VkPipelineColorBlendAttachmentState## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineColorBlendAttachmentState where
-        (VkPipelineColorBlendAttachmentState## a _) `compare`
-          x@(VkPipelineColorBlendAttachmentState## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1609,21 +1572,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkPipelineColorBlendAttachmentState
-         where
-        unsafeAddr (VkPipelineColorBlendAttachmentState## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineColorBlendAttachmentState## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineColorBlendAttachmentState##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPipelineColorBlendAttachmentState where
         type StructFields VkPipelineColorBlendAttachmentState =
              '["blendEnable", "srcColorBlendFactor", "dstColorBlendFactor", -- ' closing tick for hsc2hs
@@ -2013,20 +1961,18 @@
 --   > } VkPipelineColorBlendStateCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineColorBlendStateCreateInfo VkPipelineColorBlendStateCreateInfo registry at www.khronos.org>
-data VkPipelineColorBlendStateCreateInfo = VkPipelineColorBlendStateCreateInfo## Addr##
-                                                                                ByteArray##
+type VkPipelineColorBlendStateCreateInfo =
+     VulkanStruct VkPipelineColorBlendStateCreateInfo' -- ' closing tick for hsc2hs
 
+data VkPipelineColorBlendStateCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineColorBlendStateCreateInfo where
-        (VkPipelineColorBlendStateCreateInfo## a _) ==
-          x@(VkPipelineColorBlendStateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineColorBlendStateCreateInfo where
-        (VkPipelineColorBlendStateCreateInfo## a _) `compare`
-          x@(VkPipelineColorBlendStateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2045,21 +1991,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkPipelineColorBlendStateCreateInfo
-         where
-        unsafeAddr (VkPipelineColorBlendStateCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineColorBlendStateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineColorBlendStateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPipelineColorBlendStateCreateInfo where
         type StructFields VkPipelineColorBlendStateCreateInfo =
              '["sType", "pNext", "flags", "logicOpEnable", "logicOp", -- ' closing tick for hsc2hs
@@ -2446,20 +2377,18 @@
 --   > } VkPipelineCoverageModulationStateCreateInfoNV;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineCoverageModulationStateCreateInfoNV VkPipelineCoverageModulationStateCreateInfoNV registry at www.khronos.org>
-data VkPipelineCoverageModulationStateCreateInfoNV = VkPipelineCoverageModulationStateCreateInfoNV## Addr##
-                                                                                                    ByteArray##
+type VkPipelineCoverageModulationStateCreateInfoNV =
+     VulkanStruct VkPipelineCoverageModulationStateCreateInfoNV' -- ' closing tick for hsc2hs
 
+data VkPipelineCoverageModulationStateCreateInfoNV' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineCoverageModulationStateCreateInfoNV where
-        (VkPipelineCoverageModulationStateCreateInfoNV## a _) ==
-          x@(VkPipelineCoverageModulationStateCreateInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineCoverageModulationStateCreateInfoNV where
-        (VkPipelineCoverageModulationStateCreateInfoNV## a _) `compare`
-          x@(VkPipelineCoverageModulationStateCreateInfoNV## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2480,23 +2409,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim
-           VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        unsafeAddr (VkPipelineCoverageModulationStateCreateInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPipelineCoverageModulationStateCreateInfoNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineCoverageModulationStateCreateInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal
            VkPipelineCoverageModulationStateCreateInfoNV
          where
@@ -2861,20 +2773,18 @@
 --   > } VkPipelineCoverageToColorStateCreateInfoNV;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineCoverageToColorStateCreateInfoNV VkPipelineCoverageToColorStateCreateInfoNV registry at www.khronos.org>
-data VkPipelineCoverageToColorStateCreateInfoNV = VkPipelineCoverageToColorStateCreateInfoNV## Addr##
-                                                                                              ByteArray##
+type VkPipelineCoverageToColorStateCreateInfoNV =
+     VulkanStruct VkPipelineCoverageToColorStateCreateInfoNV' -- ' closing tick for hsc2hs
 
+data VkPipelineCoverageToColorStateCreateInfoNV' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineCoverageToColorStateCreateInfoNV where
-        (VkPipelineCoverageToColorStateCreateInfoNV## a _) ==
-          x@(VkPipelineCoverageToColorStateCreateInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineCoverageToColorStateCreateInfoNV where
-        (VkPipelineCoverageToColorStateCreateInfoNV## a _) `compare`
-          x@(VkPipelineCoverageToColorStateCreateInfoNV## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2894,23 +2804,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim
-           VkPipelineCoverageToColorStateCreateInfoNV
-         where
-        unsafeAddr (VkPipelineCoverageToColorStateCreateInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineCoverageToColorStateCreateInfoNV## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineCoverageToColorStateCreateInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPipelineCoverageToColorStateCreateInfoNV
          where
         type StructFields VkPipelineCoverageToColorStateCreateInfoNV =
@@ -3169,20 +3062,18 @@
 --   > } VkPipelineDepthStencilStateCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineDepthStencilStateCreateInfo VkPipelineDepthStencilStateCreateInfo registry at www.khronos.org>
-data VkPipelineDepthStencilStateCreateInfo = VkPipelineDepthStencilStateCreateInfo## Addr##
-                                                                                    ByteArray##
+type VkPipelineDepthStencilStateCreateInfo =
+     VulkanStruct VkPipelineDepthStencilStateCreateInfo' -- ' closing tick for hsc2hs
 
+data VkPipelineDepthStencilStateCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineDepthStencilStateCreateInfo where
-        (VkPipelineDepthStencilStateCreateInfo## a _) ==
-          x@(VkPipelineDepthStencilStateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineDepthStencilStateCreateInfo where
-        (VkPipelineDepthStencilStateCreateInfo## a _) `compare`
-          x@(VkPipelineDepthStencilStateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -3202,21 +3093,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkPipelineDepthStencilStateCreateInfo
-         where
-        unsafeAddr (VkPipelineDepthStencilStateCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineDepthStencilStateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineDepthStencilStateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPipelineDepthStencilStateCreateInfo where
         type StructFields VkPipelineDepthStencilStateCreateInfo =
              '["sType", "pNext", "flags", "depthTestEnable", "depthWriteEnable", -- ' closing tick for hsc2hs
@@ -3781,20 +3657,18 @@
 --   > } VkPipelineDiscardRectangleStateCreateInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineDiscardRectangleStateCreateInfoEXT VkPipelineDiscardRectangleStateCreateInfoEXT registry at www.khronos.org>
-data VkPipelineDiscardRectangleStateCreateInfoEXT = VkPipelineDiscardRectangleStateCreateInfoEXT## Addr##
-                                                                                                  ByteArray##
+type VkPipelineDiscardRectangleStateCreateInfoEXT =
+     VulkanStruct VkPipelineDiscardRectangleStateCreateInfoEXT' -- ' closing tick for hsc2hs
 
+data VkPipelineDiscardRectangleStateCreateInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineDiscardRectangleStateCreateInfoEXT where
-        (VkPipelineDiscardRectangleStateCreateInfoEXT## a _) ==
-          x@(VkPipelineDiscardRectangleStateCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineDiscardRectangleStateCreateInfoEXT where
-        (VkPipelineDiscardRectangleStateCreateInfoEXT## a _) `compare`
-          x@(VkPipelineDiscardRectangleStateCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -3815,23 +3689,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim
-           VkPipelineDiscardRectangleStateCreateInfoEXT
-         where
-        unsafeAddr (VkPipelineDiscardRectangleStateCreateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineDiscardRectangleStateCreateInfoEXT## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineDiscardRectangleStateCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPipelineDiscardRectangleStateCreateInfoEXT
          where
         type StructFields VkPipelineDiscardRectangleStateCreateInfoEXT =
@@ -4136,20 +3993,18 @@
 --   > } VkPipelineDynamicStateCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineDynamicStateCreateInfo VkPipelineDynamicStateCreateInfo registry at www.khronos.org>
-data VkPipelineDynamicStateCreateInfo = VkPipelineDynamicStateCreateInfo## Addr##
-                                                                          ByteArray##
+type VkPipelineDynamicStateCreateInfo =
+     VulkanStruct VkPipelineDynamicStateCreateInfo' -- ' closing tick for hsc2hs
 
+data VkPipelineDynamicStateCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineDynamicStateCreateInfo where
-        (VkPipelineDynamicStateCreateInfo## a _) ==
-          x@(VkPipelineDynamicStateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineDynamicStateCreateInfo where
-        (VkPipelineDynamicStateCreateInfo## a _) `compare`
-          x@(VkPipelineDynamicStateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -4168,20 +4023,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkPipelineDynamicStateCreateInfo where
-        unsafeAddr (VkPipelineDynamicStateCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineDynamicStateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineDynamicStateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPipelineDynamicStateCreateInfo where
         type StructFields VkPipelineDynamicStateCreateInfo =
              '["sType", "pNext", "flags", "dynamicStateCount", "pDynamicStates"] -- ' closing tick for hsc2hs
@@ -4396,20 +4237,18 @@
 --   > } VkPipelineInputAssemblyStateCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineInputAssemblyStateCreateInfo VkPipelineInputAssemblyStateCreateInfo registry at www.khronos.org>
-data VkPipelineInputAssemblyStateCreateInfo = VkPipelineInputAssemblyStateCreateInfo## Addr##
-                                                                                      ByteArray##
+type VkPipelineInputAssemblyStateCreateInfo =
+     VulkanStruct VkPipelineInputAssemblyStateCreateInfo' -- ' closing tick for hsc2hs
 
+data VkPipelineInputAssemblyStateCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineInputAssemblyStateCreateInfo where
-        (VkPipelineInputAssemblyStateCreateInfo## a _) ==
-          x@(VkPipelineInputAssemblyStateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineInputAssemblyStateCreateInfo where
-        (VkPipelineInputAssemblyStateCreateInfo## a _) `compare`
-          x@(VkPipelineInputAssemblyStateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -4429,21 +4268,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkPipelineInputAssemblyStateCreateInfo
-         where
-        unsafeAddr (VkPipelineInputAssemblyStateCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineInputAssemblyStateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineInputAssemblyStateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPipelineInputAssemblyStateCreateInfo where
         type StructFields VkPipelineInputAssemblyStateCreateInfo =
              '["sType", "pNext", "flags", "topology", "primitiveRestartEnable"] -- ' closing tick for hsc2hs
@@ -4671,19 +4495,18 @@
 --   > } VkPipelineLayoutCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineLayoutCreateInfo VkPipelineLayoutCreateInfo registry at www.khronos.org>
-data VkPipelineLayoutCreateInfo = VkPipelineLayoutCreateInfo## Addr##
-                                                              ByteArray##
+type VkPipelineLayoutCreateInfo =
+     VulkanStruct VkPipelineLayoutCreateInfo' -- ' closing tick for hsc2hs
 
+data VkPipelineLayoutCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineLayoutCreateInfo where
-        (VkPipelineLayoutCreateInfo## a _) ==
-          x@(VkPipelineLayoutCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineLayoutCreateInfo where
-        (VkPipelineLayoutCreateInfo## a _) `compare`
-          x@(VkPipelineLayoutCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -4701,20 +4524,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkPipelineLayoutCreateInfo where
-        unsafeAddr (VkPipelineLayoutCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineLayoutCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineLayoutCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPipelineLayoutCreateInfo where
         type StructFields VkPipelineLayoutCreateInfo =
              '["sType", "pNext", "flags", "setLayoutCount", "pSetLayouts", -- ' closing tick for hsc2hs
@@ -5003,20 +4812,18 @@
 --   > } VkPipelineMultisampleStateCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineMultisampleStateCreateInfo VkPipelineMultisampleStateCreateInfo registry at www.khronos.org>
-data VkPipelineMultisampleStateCreateInfo = VkPipelineMultisampleStateCreateInfo## Addr##
-                                                                                  ByteArray##
+type VkPipelineMultisampleStateCreateInfo =
+     VulkanStruct VkPipelineMultisampleStateCreateInfo' -- ' closing tick for hsc2hs
 
+data VkPipelineMultisampleStateCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineMultisampleStateCreateInfo where
-        (VkPipelineMultisampleStateCreateInfo## a _) ==
-          x@(VkPipelineMultisampleStateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineMultisampleStateCreateInfo where
-        (VkPipelineMultisampleStateCreateInfo## a _) `compare`
-          x@(VkPipelineMultisampleStateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -5036,21 +4843,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkPipelineMultisampleStateCreateInfo
-         where
-        unsafeAddr (VkPipelineMultisampleStateCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineMultisampleStateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineMultisampleStateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPipelineMultisampleStateCreateInfo where
         type StructFields VkPipelineMultisampleStateCreateInfo =
              '["sType", "pNext", "flags", "rasterizationSamples", -- ' closing tick for hsc2hs
@@ -5475,23 +5267,20 @@
 --   > } VkPipelineRasterizationConservativeStateCreateInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineRasterizationConservativeStateCreateInfoEXT VkPipelineRasterizationConservativeStateCreateInfoEXT registry at www.khronos.org>
-data VkPipelineRasterizationConservativeStateCreateInfoEXT = VkPipelineRasterizationConservativeStateCreateInfoEXT## Addr##
-                                                                                                                    ByteArray##
+type VkPipelineRasterizationConservativeStateCreateInfoEXT =
+     VulkanStruct VkPipelineRasterizationConservativeStateCreateInfoEXT' -- ' closing tick for hsc2hs
 
+data VkPipelineRasterizationConservativeStateCreateInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineRasterizationConservativeStateCreateInfoEXT
          where
-        (VkPipelineRasterizationConservativeStateCreateInfoEXT## a _) ==
-          x@(VkPipelineRasterizationConservativeStateCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineRasterizationConservativeStateCreateInfoEXT
          where
-        (VkPipelineRasterizationConservativeStateCreateInfoEXT## a _)
-          `compare`
-          x@(VkPipelineRasterizationConservativeStateCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -5513,24 +5302,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim
-           VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        unsafeAddr
-          (VkPipelineRasterizationConservativeStateCreateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPipelineRasterizationConservativeStateCreateInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineRasterizationConservativeStateCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal
            VkPipelineRasterizationConservativeStateCreateInfoEXT
          where
@@ -5818,20 +5589,18 @@
 --   > } VkPipelineRasterizationStateCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineRasterizationStateCreateInfo VkPipelineRasterizationStateCreateInfo registry at www.khronos.org>
-data VkPipelineRasterizationStateCreateInfo = VkPipelineRasterizationStateCreateInfo## Addr##
-                                                                                      ByteArray##
+type VkPipelineRasterizationStateCreateInfo =
+     VulkanStruct VkPipelineRasterizationStateCreateInfo' -- ' closing tick for hsc2hs
 
+data VkPipelineRasterizationStateCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineRasterizationStateCreateInfo where
-        (VkPipelineRasterizationStateCreateInfo## a _) ==
-          x@(VkPipelineRasterizationStateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineRasterizationStateCreateInfo where
-        (VkPipelineRasterizationStateCreateInfo## a _) `compare`
-          x@(VkPipelineRasterizationStateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -5851,21 +5620,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkPipelineRasterizationStateCreateInfo
-         where
-        unsafeAddr (VkPipelineRasterizationStateCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineRasterizationStateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineRasterizationStateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPipelineRasterizationStateCreateInfo where
         type StructFields VkPipelineRasterizationStateCreateInfo =
              '["sType", "pNext", "flags", "depthClampEnable", -- ' closing tick for hsc2hs
@@ -6492,21 +6246,19 @@
 --   > } VkPipelineRasterizationStateRasterizationOrderAMD;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineRasterizationStateRasterizationOrderAMD VkPipelineRasterizationStateRasterizationOrderAMD registry at www.khronos.org>
-data VkPipelineRasterizationStateRasterizationOrderAMD = VkPipelineRasterizationStateRasterizationOrderAMD## Addr##
-                                                                                                            ByteArray##
+type VkPipelineRasterizationStateRasterizationOrderAMD =
+     VulkanStruct VkPipelineRasterizationStateRasterizationOrderAMD' -- ' closing tick for hsc2hs
 
+data VkPipelineRasterizationStateRasterizationOrderAMD' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineRasterizationStateRasterizationOrderAMD where
-        (VkPipelineRasterizationStateRasterizationOrderAMD## a _) ==
-          x@(VkPipelineRasterizationStateRasterizationOrderAMD## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineRasterizationStateRasterizationOrderAMD
          where
-        (VkPipelineRasterizationStateRasterizationOrderAMD## a _) `compare`
-          x@(VkPipelineRasterizationStateRasterizationOrderAMD## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -6527,24 +6279,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim
-           VkPipelineRasterizationStateRasterizationOrderAMD
-         where
-        unsafeAddr (VkPipelineRasterizationStateRasterizationOrderAMD## a _)
-          = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPipelineRasterizationStateRasterizationOrderAMD## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineRasterizationStateRasterizationOrderAMD##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal
            VkPipelineRasterizationStateRasterizationOrderAMD
          where
@@ -6716,20 +6450,18 @@
 --   > } VkPipelineSampleLocationsStateCreateInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineSampleLocationsStateCreateInfoEXT VkPipelineSampleLocationsStateCreateInfoEXT registry at www.khronos.org>
-data VkPipelineSampleLocationsStateCreateInfoEXT = VkPipelineSampleLocationsStateCreateInfoEXT## Addr##
-                                                                                                ByteArray##
+type VkPipelineSampleLocationsStateCreateInfoEXT =
+     VulkanStruct VkPipelineSampleLocationsStateCreateInfoEXT' -- ' closing tick for hsc2hs
 
+data VkPipelineSampleLocationsStateCreateInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineSampleLocationsStateCreateInfoEXT where
-        (VkPipelineSampleLocationsStateCreateInfoEXT## a _) ==
-          x@(VkPipelineSampleLocationsStateCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineSampleLocationsStateCreateInfoEXT where
-        (VkPipelineSampleLocationsStateCreateInfoEXT## a _) `compare`
-          x@(VkPipelineSampleLocationsStateCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -6749,23 +6481,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim
-           VkPipelineSampleLocationsStateCreateInfoEXT
-         where
-        unsafeAddr (VkPipelineSampleLocationsStateCreateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineSampleLocationsStateCreateInfoEXT## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineSampleLocationsStateCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPipelineSampleLocationsStateCreateInfoEXT
          where
         type StructFields VkPipelineSampleLocationsStateCreateInfoEXT =
@@ -6977,19 +6692,18 @@
 --   > } VkPipelineShaderStageCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineShaderStageCreateInfo VkPipelineShaderStageCreateInfo registry at www.khronos.org>
-data VkPipelineShaderStageCreateInfo = VkPipelineShaderStageCreateInfo## Addr##
-                                                                        ByteArray##
+type VkPipelineShaderStageCreateInfo =
+     VulkanStruct VkPipelineShaderStageCreateInfo' -- ' closing tick for hsc2hs
 
+data VkPipelineShaderStageCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineShaderStageCreateInfo where
-        (VkPipelineShaderStageCreateInfo## a _) ==
-          x@(VkPipelineShaderStageCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineShaderStageCreateInfo where
-        (VkPipelineShaderStageCreateInfo## a _) `compare`
-          x@(VkPipelineShaderStageCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -7008,20 +6722,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkPipelineShaderStageCreateInfo where
-        unsafeAddr (VkPipelineShaderStageCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineShaderStageCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineShaderStageCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPipelineShaderStageCreateInfo where
         type StructFields VkPipelineShaderStageCreateInfo =
              '["sType", "pNext", "flags", "stage", "module", "pName", -- ' closing tick for hsc2hs
@@ -7302,21 +7002,19 @@
 --   > } VkPipelineTessellationDomainOriginStateCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfo registry at www.khronos.org>
-data VkPipelineTessellationDomainOriginStateCreateInfo = VkPipelineTessellationDomainOriginStateCreateInfo## Addr##
-                                                                                                            ByteArray##
+type VkPipelineTessellationDomainOriginStateCreateInfo =
+     VulkanStruct VkPipelineTessellationDomainOriginStateCreateInfo' -- ' closing tick for hsc2hs
 
+data VkPipelineTessellationDomainOriginStateCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineTessellationDomainOriginStateCreateInfo where
-        (VkPipelineTessellationDomainOriginStateCreateInfo## a _) ==
-          x@(VkPipelineTessellationDomainOriginStateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineTessellationDomainOriginStateCreateInfo
          where
-        (VkPipelineTessellationDomainOriginStateCreateInfo## a _) `compare`
-          x@(VkPipelineTessellationDomainOriginStateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -7337,24 +7035,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim
-           VkPipelineTessellationDomainOriginStateCreateInfo
-         where
-        unsafeAddr (VkPipelineTessellationDomainOriginStateCreateInfo## a _)
-          = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPipelineTessellationDomainOriginStateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineTessellationDomainOriginStateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal
            VkPipelineTessellationDomainOriginStateCreateInfo
          where
@@ -7530,20 +7210,18 @@
 --   > } VkPipelineTessellationStateCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineTessellationStateCreateInfo VkPipelineTessellationStateCreateInfo registry at www.khronos.org>
-data VkPipelineTessellationStateCreateInfo = VkPipelineTessellationStateCreateInfo## Addr##
-                                                                                    ByteArray##
+type VkPipelineTessellationStateCreateInfo =
+     VulkanStruct VkPipelineTessellationStateCreateInfo' -- ' closing tick for hsc2hs
 
+data VkPipelineTessellationStateCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineTessellationStateCreateInfo where
-        (VkPipelineTessellationStateCreateInfo## a _) ==
-          x@(VkPipelineTessellationStateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineTessellationStateCreateInfo where
-        (VkPipelineTessellationStateCreateInfo## a _) `compare`
-          x@(VkPipelineTessellationStateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -7563,21 +7241,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkPipelineTessellationStateCreateInfo
-         where
-        unsafeAddr (VkPipelineTessellationStateCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineTessellationStateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineTessellationStateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPipelineTessellationStateCreateInfo where
         type StructFields VkPipelineTessellationStateCreateInfo =
              '["sType", "pNext", "flags", "patchControlPoints"] -- ' closing tick for hsc2hs
@@ -7758,20 +7421,18 @@
 --   > } VkPipelineVertexInputDivisorStateCreateInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineVertexInputDivisorStateCreateInfoEXT VkPipelineVertexInputDivisorStateCreateInfoEXT registry at www.khronos.org>
-data VkPipelineVertexInputDivisorStateCreateInfoEXT = VkPipelineVertexInputDivisorStateCreateInfoEXT## Addr##
-                                                                                                      ByteArray##
+type VkPipelineVertexInputDivisorStateCreateInfoEXT =
+     VulkanStruct VkPipelineVertexInputDivisorStateCreateInfoEXT' -- ' closing tick for hsc2hs
 
+data VkPipelineVertexInputDivisorStateCreateInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineVertexInputDivisorStateCreateInfoEXT where
-        (VkPipelineVertexInputDivisorStateCreateInfoEXT## a _) ==
-          x@(VkPipelineVertexInputDivisorStateCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineVertexInputDivisorStateCreateInfoEXT where
-        (VkPipelineVertexInputDivisorStateCreateInfoEXT## a _) `compare`
-          x@(VkPipelineVertexInputDivisorStateCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -7792,24 +7453,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim
-           VkPipelineVertexInputDivisorStateCreateInfoEXT
-         where
-        unsafeAddr (VkPipelineVertexInputDivisorStateCreateInfoEXT## a _)
-          = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPipelineVertexInputDivisorStateCreateInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineVertexInputDivisorStateCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal
            VkPipelineVertexInputDivisorStateCreateInfoEXT
          where
@@ -8029,20 +7672,18 @@
 --   > } VkPipelineVertexInputStateCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineVertexInputStateCreateInfo VkPipelineVertexInputStateCreateInfo registry at www.khronos.org>
-data VkPipelineVertexInputStateCreateInfo = VkPipelineVertexInputStateCreateInfo## Addr##
-                                                                                  ByteArray##
+type VkPipelineVertexInputStateCreateInfo =
+     VulkanStruct VkPipelineVertexInputStateCreateInfo' -- ' closing tick for hsc2hs
 
+data VkPipelineVertexInputStateCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineVertexInputStateCreateInfo where
-        (VkPipelineVertexInputStateCreateInfo## a _) ==
-          x@(VkPipelineVertexInputStateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineVertexInputStateCreateInfo where
-        (VkPipelineVertexInputStateCreateInfo## a _) `compare`
-          x@(VkPipelineVertexInputStateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -8062,21 +7703,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkPipelineVertexInputStateCreateInfo
-         where
-        unsafeAddr (VkPipelineVertexInputStateCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineVertexInputStateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineVertexInputStateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPipelineVertexInputStateCreateInfo where
         type StructFields VkPipelineVertexInputStateCreateInfo =
              '["sType", "pNext", "flags", "vertexBindingDescriptionCount", -- ' closing tick for hsc2hs
@@ -8414,20 +8040,18 @@
 --   > } VkPipelineViewportStateCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineViewportStateCreateInfo VkPipelineViewportStateCreateInfo registry at www.khronos.org>
-data VkPipelineViewportStateCreateInfo = VkPipelineViewportStateCreateInfo## Addr##
-                                                                            ByteArray##
+type VkPipelineViewportStateCreateInfo =
+     VulkanStruct VkPipelineViewportStateCreateInfo' -- ' closing tick for hsc2hs
 
+data VkPipelineViewportStateCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineViewportStateCreateInfo where
-        (VkPipelineViewportStateCreateInfo## a _) ==
-          x@(VkPipelineViewportStateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineViewportStateCreateInfo where
-        (VkPipelineViewportStateCreateInfo## a _) `compare`
-          x@(VkPipelineViewportStateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -8446,20 +8070,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkPipelineViewportStateCreateInfo where
-        unsafeAddr (VkPipelineViewportStateCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineViewportStateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineViewportStateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPipelineViewportStateCreateInfo where
         type StructFields VkPipelineViewportStateCreateInfo =
              '["sType", "pNext", "flags", "viewportCount", "pViewports", -- ' closing tick for hsc2hs
@@ -8751,20 +8361,18 @@
 --   > } VkPipelineViewportSwizzleStateCreateInfoNV;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineViewportSwizzleStateCreateInfoNV VkPipelineViewportSwizzleStateCreateInfoNV registry at www.khronos.org>
-data VkPipelineViewportSwizzleStateCreateInfoNV = VkPipelineViewportSwizzleStateCreateInfoNV## Addr##
-                                                                                              ByteArray##
+type VkPipelineViewportSwizzleStateCreateInfoNV =
+     VulkanStruct VkPipelineViewportSwizzleStateCreateInfoNV' -- ' closing tick for hsc2hs
 
+data VkPipelineViewportSwizzleStateCreateInfoNV' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineViewportSwizzleStateCreateInfoNV where
-        (VkPipelineViewportSwizzleStateCreateInfoNV## a _) ==
-          x@(VkPipelineViewportSwizzleStateCreateInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineViewportSwizzleStateCreateInfoNV where
-        (VkPipelineViewportSwizzleStateCreateInfoNV## a _) `compare`
-          x@(VkPipelineViewportSwizzleStateCreateInfoNV## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -8784,23 +8392,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim
-           VkPipelineViewportSwizzleStateCreateInfoNV
-         where
-        unsafeAddr (VkPipelineViewportSwizzleStateCreateInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineViewportSwizzleStateCreateInfoNV## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineViewportSwizzleStateCreateInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPipelineViewportSwizzleStateCreateInfoNV
          where
         type StructFields VkPipelineViewportSwizzleStateCreateInfoNV =
@@ -9049,20 +8640,18 @@
 --   > } VkPipelineViewportWScalingStateCreateInfoNV;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineViewportWScalingStateCreateInfoNV VkPipelineViewportWScalingStateCreateInfoNV registry at www.khronos.org>
-data VkPipelineViewportWScalingStateCreateInfoNV = VkPipelineViewportWScalingStateCreateInfoNV## Addr##
-                                                                                                ByteArray##
+type VkPipelineViewportWScalingStateCreateInfoNV =
+     VulkanStruct VkPipelineViewportWScalingStateCreateInfoNV' -- ' closing tick for hsc2hs
 
+data VkPipelineViewportWScalingStateCreateInfoNV' -- ' closing tick for hsc2hs
+
 instance Eq VkPipelineViewportWScalingStateCreateInfoNV where
-        (VkPipelineViewportWScalingStateCreateInfoNV## a _) ==
-          x@(VkPipelineViewportWScalingStateCreateInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPipelineViewportWScalingStateCreateInfoNV where
-        (VkPipelineViewportWScalingStateCreateInfoNV## a _) `compare`
-          x@(VkPipelineViewportWScalingStateCreateInfoNV## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -9081,23 +8670,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPipelineViewportWScalingStateCreateInfoNV
-         where
-        unsafeAddr (VkPipelineViewportWScalingStateCreateInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineViewportWScalingStateCreateInfoNV## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineViewportWScalingStateCreateInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkPipelineViewportWScalingStateCreateInfoNV
          where
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PlatformAndroidKhr.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PlatformAndroidKhr.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/PlatformAndroidKhr.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PlatformAndroidKhr.hsc
@@ -8,36 +8,39 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.PlatformAndroidKhr
-       (VkAndroidHardwareBufferFormatPropertiesANDROID(..),
-        VkAndroidHardwareBufferPropertiesANDROID(..),
-        VkAndroidHardwareBufferUsageANDROID(..),
-        VkAndroidSurfaceCreateInfoKHR(..), VkExternalFormatANDROID(..),
-        VkImportAndroidHardwareBufferInfoANDROID(..),
-        VkMemoryGetAndroidHardwareBufferInfoANDROID(..))
+       (VkAndroidHardwareBufferFormatPropertiesANDROID,
+        VkAndroidHardwareBufferFormatPropertiesANDROID', -- ' closing tick for hsc2hs
+        VkAndroidHardwareBufferPropertiesANDROID,
+        VkAndroidHardwareBufferPropertiesANDROID', -- ' closing tick for hsc2hs
+        VkAndroidHardwareBufferUsageANDROID,
+        VkAndroidHardwareBufferUsageANDROID', -- ' closing tick for hsc2hs
+        VkAndroidSurfaceCreateInfoKHR, VkAndroidSurfaceCreateInfoKHR', -- ' closing tick for hsc2hs
+        VkExternalFormatANDROID, VkExternalFormatANDROID', -- ' closing tick for hsc2hs
+        VkImportAndroidHardwareBufferInfoANDROID,
+        VkImportAndroidHardwareBufferInfoANDROID', -- ' closing tick for hsc2hs
+        VkMemoryGetAndroidHardwareBufferInfoANDROID,
+        VkMemoryGetAndroidHardwareBufferInfoANDROID') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Base                                      (Addr##,
-                                                                ByteArray##,
-                                                                byteArrayContents##,
-                                                                plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes               (VkDeviceSize)
-import           Graphics.Vulkan.Types.Bitmasks                (VkAndroidSurfaceCreateFlagsKHR)
-import           Graphics.Vulkan.Types.Defines                 (AHardwareBuffer,
-                                                                ANativeWindow)
-import           Graphics.Vulkan.Types.Enum.ChromaLocation     (VkChromaLocation)
-import           Graphics.Vulkan.Types.Enum.Format             (VkFormat, VkFormatFeatureFlags)
-import           Graphics.Vulkan.Types.Enum.Sampler            (VkSamplerYcbcrModelConversion,
-                                                                VkSamplerYcbcrRange)
-import           Graphics.Vulkan.Types.Enum.StructureType      (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                 (VkDeviceMemory)
-import           Graphics.Vulkan.Types.Struct.ComponentMapping (VkComponentMapping)
-import           Graphics.Vulkan.Types.Struct.Image            (VkImageCreateInfo,
-                                                                VkImageFormatProperties2)
-import           Graphics.Vulkan.Types.Struct.Memory           (VkMemoryAllocateInfo)
-import           Graphics.Vulkan.Types.Struct.Sampler          (VkSamplerYcbcrConversionCreateInfo)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
+import Foreign.Storable                              (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes               (VkDeviceSize)
+import Graphics.Vulkan.Types.Bitmasks                (VkAndroidSurfaceCreateFlagsKHR)
+import Graphics.Vulkan.Types.Defines                 (AHardwareBuffer,
+                                                      ANativeWindow)
+import Graphics.Vulkan.Types.Enum.ChromaLocation     (VkChromaLocation)
+import Graphics.Vulkan.Types.Enum.Format             (VkFormat,
+                                                      VkFormatFeatureFlags)
+import Graphics.Vulkan.Types.Enum.Sampler            (VkSamplerYcbcrModelConversion,
+                                                      VkSamplerYcbcrRange)
+import Graphics.Vulkan.Types.Enum.StructureType      (VkStructureType)
+import Graphics.Vulkan.Types.Handles                 (VkDeviceMemory)
+import Graphics.Vulkan.Types.Struct.ComponentMapping (VkComponentMapping)
+import Graphics.Vulkan.Types.Struct.Image            (VkImageCreateInfo,
+                                                      VkImageFormatProperties2)
+import Graphics.Vulkan.Types.Struct.Memory           (VkMemoryAllocateInfo)
+import Graphics.Vulkan.Types.Struct.Sampler          (VkSamplerYcbcrConversionCreateInfo)
+import System.IO.Unsafe                              (unsafeDupablePerformIO)
 
 -- | > typedef struct VkAndroidHardwareBufferFormatPropertiesANDROID {
 --   >     VkStructureType sType;
@@ -53,20 +56,18 @@
 --   > } VkAndroidHardwareBufferFormatPropertiesANDROID;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkAndroidHardwareBufferFormatPropertiesANDROID VkAndroidHardwareBufferFormatPropertiesANDROID registry at www.khronos.org>
-data VkAndroidHardwareBufferFormatPropertiesANDROID = VkAndroidHardwareBufferFormatPropertiesANDROID## Addr##
-                                                                                                      ByteArray##
+type VkAndroidHardwareBufferFormatPropertiesANDROID =
+     VulkanStruct VkAndroidHardwareBufferFormatPropertiesANDROID' -- ' closing tick for hsc2hs
 
+data VkAndroidHardwareBufferFormatPropertiesANDROID' -- ' closing tick for hsc2hs
+
 instance Eq VkAndroidHardwareBufferFormatPropertiesANDROID where
-        (VkAndroidHardwareBufferFormatPropertiesANDROID## a _) ==
-          x@(VkAndroidHardwareBufferFormatPropertiesANDROID## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkAndroidHardwareBufferFormatPropertiesANDROID where
-        (VkAndroidHardwareBufferFormatPropertiesANDROID## a _) `compare`
-          x@(VkAndroidHardwareBufferFormatPropertiesANDROID## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -87,24 +88,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        unsafeAddr (VkAndroidHardwareBufferFormatPropertiesANDROID## a _)
-          = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkAndroidHardwareBufferFormatPropertiesANDROID## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkAndroidHardwareBufferFormatPropertiesANDROID##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal
            VkAndroidHardwareBufferFormatPropertiesANDROID
          where
@@ -632,20 +615,18 @@
 --   > } VkAndroidHardwareBufferPropertiesANDROID;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkAndroidHardwareBufferPropertiesANDROID VkAndroidHardwareBufferPropertiesANDROID registry at www.khronos.org>
-data VkAndroidHardwareBufferPropertiesANDROID = VkAndroidHardwareBufferPropertiesANDROID## Addr##
-                                                                                          ByteArray##
+type VkAndroidHardwareBufferPropertiesANDROID =
+     VulkanStruct VkAndroidHardwareBufferPropertiesANDROID' -- ' closing tick for hsc2hs
 
+data VkAndroidHardwareBufferPropertiesANDROID' -- ' closing tick for hsc2hs
+
 instance Eq VkAndroidHardwareBufferPropertiesANDROID where
-        (VkAndroidHardwareBufferPropertiesANDROID## a _) ==
-          x@(VkAndroidHardwareBufferPropertiesANDROID## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkAndroidHardwareBufferPropertiesANDROID where
-        (VkAndroidHardwareBufferPropertiesANDROID## a _) `compare`
-          x@(VkAndroidHardwareBufferPropertiesANDROID## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -665,21 +646,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkAndroidHardwareBufferPropertiesANDROID
-         where
-        unsafeAddr (VkAndroidHardwareBufferPropertiesANDROID## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkAndroidHardwareBufferPropertiesANDROID## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkAndroidHardwareBufferPropertiesANDROID##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkAndroidHardwareBufferPropertiesANDROID
          where
         type StructFields VkAndroidHardwareBufferPropertiesANDROID =
@@ -872,20 +838,18 @@
 --   > } VkAndroidHardwareBufferUsageANDROID;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkAndroidHardwareBufferUsageANDROID VkAndroidHardwareBufferUsageANDROID registry at www.khronos.org>
-data VkAndroidHardwareBufferUsageANDROID = VkAndroidHardwareBufferUsageANDROID## Addr##
-                                                                                ByteArray##
+type VkAndroidHardwareBufferUsageANDROID =
+     VulkanStruct VkAndroidHardwareBufferUsageANDROID' -- ' closing tick for hsc2hs
 
+data VkAndroidHardwareBufferUsageANDROID' -- ' closing tick for hsc2hs
+
 instance Eq VkAndroidHardwareBufferUsageANDROID where
-        (VkAndroidHardwareBufferUsageANDROID## a _) ==
-          x@(VkAndroidHardwareBufferUsageANDROID## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkAndroidHardwareBufferUsageANDROID where
-        (VkAndroidHardwareBufferUsageANDROID## a _) `compare`
-          x@(VkAndroidHardwareBufferUsageANDROID## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -904,21 +868,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkAndroidHardwareBufferUsageANDROID
-         where
-        unsafeAddr (VkAndroidHardwareBufferUsageANDROID## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkAndroidHardwareBufferUsageANDROID## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkAndroidHardwareBufferUsageANDROID##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkAndroidHardwareBufferUsageANDROID where
         type StructFields VkAndroidHardwareBufferUsageANDROID =
              '["sType", "pNext", "androidHardwareBufferUsage"] -- ' closing tick for hsc2hs
@@ -1064,19 +1013,18 @@
 --   > } VkAndroidSurfaceCreateInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkAndroidSurfaceCreateInfoKHR VkAndroidSurfaceCreateInfoKHR registry at www.khronos.org>
-data VkAndroidSurfaceCreateInfoKHR = VkAndroidSurfaceCreateInfoKHR## Addr##
-                                                                    ByteArray##
+type VkAndroidSurfaceCreateInfoKHR =
+     VulkanStruct VkAndroidSurfaceCreateInfoKHR' -- ' closing tick for hsc2hs
 
+data VkAndroidSurfaceCreateInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkAndroidSurfaceCreateInfoKHR where
-        (VkAndroidSurfaceCreateInfoKHR## a _) ==
-          x@(VkAndroidSurfaceCreateInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkAndroidSurfaceCreateInfoKHR where
-        (VkAndroidSurfaceCreateInfoKHR## a _) `compare`
-          x@(VkAndroidSurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1095,20 +1043,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkAndroidSurfaceCreateInfoKHR where
-        unsafeAddr (VkAndroidSurfaceCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkAndroidSurfaceCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkAndroidSurfaceCreateInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkAndroidSurfaceCreateInfoKHR where
         type StructFields VkAndroidSurfaceCreateInfoKHR =
              '["sType", "pNext", "flags", "window"] -- ' closing tick for hsc2hs
@@ -1269,18 +1203,18 @@
 --   > } VkExternalFormatANDROID;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalFormatANDROID VkExternalFormatANDROID registry at www.khronos.org>
-data VkExternalFormatANDROID = VkExternalFormatANDROID## Addr##
-                                                        ByteArray##
+type VkExternalFormatANDROID =
+     VulkanStruct VkExternalFormatANDROID' -- ' closing tick for hsc2hs
 
+data VkExternalFormatANDROID' -- ' closing tick for hsc2hs
+
 instance Eq VkExternalFormatANDROID where
-        (VkExternalFormatANDROID## a _) == x@(VkExternalFormatANDROID## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExternalFormatANDROID where
-        (VkExternalFormatANDROID## a _) `compare`
-          x@(VkExternalFormatANDROID## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1298,18 +1232,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkExternalFormatANDROID where
-        unsafeAddr (VkExternalFormatANDROID## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExternalFormatANDROID## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExternalFormatANDROID## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkExternalFormatANDROID where
         type StructFields VkExternalFormatANDROID =
              '["sType", "pNext", "externalFormat"] -- ' closing tick for hsc2hs
@@ -1432,20 +1354,18 @@
 --   > } VkImportAndroidHardwareBufferInfoANDROID;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportAndroidHardwareBufferInfoANDROID VkImportAndroidHardwareBufferInfoANDROID registry at www.khronos.org>
-data VkImportAndroidHardwareBufferInfoANDROID = VkImportAndroidHardwareBufferInfoANDROID## Addr##
-                                                                                          ByteArray##
+type VkImportAndroidHardwareBufferInfoANDROID =
+     VulkanStruct VkImportAndroidHardwareBufferInfoANDROID' -- ' closing tick for hsc2hs
 
+data VkImportAndroidHardwareBufferInfoANDROID' -- ' closing tick for hsc2hs
+
 instance Eq VkImportAndroidHardwareBufferInfoANDROID where
-        (VkImportAndroidHardwareBufferInfoANDROID## a _) ==
-          x@(VkImportAndroidHardwareBufferInfoANDROID## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImportAndroidHardwareBufferInfoANDROID where
-        (VkImportAndroidHardwareBufferInfoANDROID## a _) `compare`
-          x@(VkImportAndroidHardwareBufferInfoANDROID## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1465,21 +1385,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImportAndroidHardwareBufferInfoANDROID
-         where
-        unsafeAddr (VkImportAndroidHardwareBufferInfoANDROID## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImportAndroidHardwareBufferInfoANDROID## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImportAndroidHardwareBufferInfoANDROID##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImportAndroidHardwareBufferInfoANDROID
          where
         type StructFields VkImportAndroidHardwareBufferInfoANDROID =
@@ -1619,20 +1524,18 @@
 --   > } VkMemoryGetAndroidHardwareBufferInfoANDROID;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryGetAndroidHardwareBufferInfoANDROID VkMemoryGetAndroidHardwareBufferInfoANDROID registry at www.khronos.org>
-data VkMemoryGetAndroidHardwareBufferInfoANDROID = VkMemoryGetAndroidHardwareBufferInfoANDROID## Addr##
-                                                                                                ByteArray##
+type VkMemoryGetAndroidHardwareBufferInfoANDROID =
+     VulkanStruct VkMemoryGetAndroidHardwareBufferInfoANDROID' -- ' closing tick for hsc2hs
 
+data VkMemoryGetAndroidHardwareBufferInfoANDROID' -- ' closing tick for hsc2hs
+
 instance Eq VkMemoryGetAndroidHardwareBufferInfoANDROID where
-        (VkMemoryGetAndroidHardwareBufferInfoANDROID## a _) ==
-          x@(VkMemoryGetAndroidHardwareBufferInfoANDROID## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkMemoryGetAndroidHardwareBufferInfoANDROID where
-        (VkMemoryGetAndroidHardwareBufferInfoANDROID## a _) `compare`
-          x@(VkMemoryGetAndroidHardwareBufferInfoANDROID## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1651,23 +1554,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkMemoryGetAndroidHardwareBufferInfoANDROID
-         where
-        unsafeAddr (VkMemoryGetAndroidHardwareBufferInfoANDROID## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryGetAndroidHardwareBufferInfoANDROID## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryGetAndroidHardwareBufferInfoANDROID##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkMemoryGetAndroidHardwareBufferInfoANDROID
          where
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PlatformIosMvk.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PlatformIosMvk.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/PlatformIosMvk.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PlatformIosMvk.hsc
@@ -8,16 +8,13 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.PlatformIosMvk
-       (VkIOSSurfaceCreateInfoMVK(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks           (VkIOSSurfaceCreateFlagsMVK)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkIOSSurfaceCreateInfoMVK, VkIOSSurfaceCreateInfoMVK') where -- ' closing tick for hsc2hs
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Bitmasks           (VkIOSSurfaceCreateFlagsMVK)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkIOSSurfaceCreateInfoMVK {
 --   >     VkStructureType sType;
@@ -27,18 +24,18 @@
 --   > } VkIOSSurfaceCreateInfoMVK;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkIOSSurfaceCreateInfoMVK VkIOSSurfaceCreateInfoMVK registry at www.khronos.org>
-data VkIOSSurfaceCreateInfoMVK = VkIOSSurfaceCreateInfoMVK## Addr##
-                                                            ByteArray##
+type VkIOSSurfaceCreateInfoMVK =
+     VulkanStruct VkIOSSurfaceCreateInfoMVK' -- ' closing tick for hsc2hs
 
+data VkIOSSurfaceCreateInfoMVK' -- ' closing tick for hsc2hs
+
 instance Eq VkIOSSurfaceCreateInfoMVK where
-        (VkIOSSurfaceCreateInfoMVK## a _) ==
-          x@(VkIOSSurfaceCreateInfoMVK## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkIOSSurfaceCreateInfoMVK where
-        (VkIOSSurfaceCreateInfoMVK## a _) `compare`
-          x@(VkIOSSurfaceCreateInfoMVK## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -55,19 +52,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkIOSSurfaceCreateInfoMVK where
-        unsafeAddr (VkIOSSurfaceCreateInfoMVK## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkIOSSurfaceCreateInfoMVK## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkIOSSurfaceCreateInfoMVK## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkIOSSurfaceCreateInfoMVK where
         type StructFields VkIOSSurfaceCreateInfoMVK =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PlatformMacosMvk.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PlatformMacosMvk.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/PlatformMacosMvk.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PlatformMacosMvk.hsc
@@ -8,16 +8,13 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.PlatformMacosMvk
-       (VkMacOSSurfaceCreateInfoMVK(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks           (VkMacOSSurfaceCreateFlagsMVK)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkMacOSSurfaceCreateInfoMVK, VkMacOSSurfaceCreateInfoMVK') where -- ' closing tick for hsc2hs
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Bitmasks           (VkMacOSSurfaceCreateFlagsMVK)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkMacOSSurfaceCreateInfoMVK {
 --   >     VkStructureType sType;
@@ -27,19 +24,18 @@
 --   > } VkMacOSSurfaceCreateInfoMVK;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMacOSSurfaceCreateInfoMVK VkMacOSSurfaceCreateInfoMVK registry at www.khronos.org>
-data VkMacOSSurfaceCreateInfoMVK = VkMacOSSurfaceCreateInfoMVK## Addr##
-                                                                ByteArray##
+type VkMacOSSurfaceCreateInfoMVK =
+     VulkanStruct VkMacOSSurfaceCreateInfoMVK' -- ' closing tick for hsc2hs
 
+data VkMacOSSurfaceCreateInfoMVK' -- ' closing tick for hsc2hs
+
 instance Eq VkMacOSSurfaceCreateInfoMVK where
-        (VkMacOSSurfaceCreateInfoMVK## a _) ==
-          x@(VkMacOSSurfaceCreateInfoMVK## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkMacOSSurfaceCreateInfoMVK where
-        (VkMacOSSurfaceCreateInfoMVK## a _) `compare`
-          x@(VkMacOSSurfaceCreateInfoMVK## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -56,20 +52,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMacOSSurfaceCreateInfoMVK where
-        unsafeAddr (VkMacOSSurfaceCreateInfoMVK## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMacOSSurfaceCreateInfoMVK## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMacOSSurfaceCreateInfoMVK##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkMacOSSurfaceCreateInfoMVK where
         type StructFields VkMacOSSurfaceCreateInfoMVK =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PlatformMirKhr.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PlatformMirKhr.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/PlatformMirKhr.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PlatformMirKhr.hsc
@@ -8,18 +8,14 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.PlatformMirKhr
-       (VkMirSurfaceCreateInfoKHR(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks           (VkMirSurfaceCreateFlagsKHR)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Include            (MirConnection,
-                                                           MirSurface)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkMirSurfaceCreateInfoKHR, VkMirSurfaceCreateInfoKHR') where -- ' closing tick for hsc2hs
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Bitmasks           (VkMirSurfaceCreateFlagsKHR)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Include            (MirConnection, MirSurface)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkMirSurfaceCreateInfoKHR {
 --   >     VkStructureType sType;
@@ -30,18 +26,18 @@
 --   > } VkMirSurfaceCreateInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMirSurfaceCreateInfoKHR VkMirSurfaceCreateInfoKHR registry at www.khronos.org>
-data VkMirSurfaceCreateInfoKHR = VkMirSurfaceCreateInfoKHR## Addr##
-                                                            ByteArray##
+type VkMirSurfaceCreateInfoKHR =
+     VulkanStruct VkMirSurfaceCreateInfoKHR' -- ' closing tick for hsc2hs
 
+data VkMirSurfaceCreateInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkMirSurfaceCreateInfoKHR where
-        (VkMirSurfaceCreateInfoKHR## a _) ==
-          x@(VkMirSurfaceCreateInfoKHR## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkMirSurfaceCreateInfoKHR where
-        (VkMirSurfaceCreateInfoKHR## a _) `compare`
-          x@(VkMirSurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -58,19 +54,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMirSurfaceCreateInfoKHR where
-        unsafeAddr (VkMirSurfaceCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMirSurfaceCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMirSurfaceCreateInfoKHR## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkMirSurfaceCreateInfoKHR where
         type StructFields VkMirSurfaceCreateInfoKHR =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PlatformViNn.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PlatformViNn.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/PlatformViNn.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PlatformViNn.hsc
@@ -8,16 +8,13 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.PlatformViNn
-       (VkViSurfaceCreateInfoNN(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks           (VkViSurfaceCreateFlagsNN)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkViSurfaceCreateInfoNN, VkViSurfaceCreateInfoNN') where -- ' closing tick for hsc2hs
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Bitmasks           (VkViSurfaceCreateFlagsNN)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkViSurfaceCreateInfoNN {
 --   >     VkStructureType sType;
@@ -27,18 +24,18 @@
 --   > } VkViSurfaceCreateInfoNN;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkViSurfaceCreateInfoNN VkViSurfaceCreateInfoNN registry at www.khronos.org>
-data VkViSurfaceCreateInfoNN = VkViSurfaceCreateInfoNN## Addr##
-                                                        ByteArray##
+type VkViSurfaceCreateInfoNN =
+     VulkanStruct VkViSurfaceCreateInfoNN' -- ' closing tick for hsc2hs
 
+data VkViSurfaceCreateInfoNN' -- ' closing tick for hsc2hs
+
 instance Eq VkViSurfaceCreateInfoNN where
-        (VkViSurfaceCreateInfoNN## a _) == x@(VkViSurfaceCreateInfoNN## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkViSurfaceCreateInfoNN where
-        (VkViSurfaceCreateInfoNN## a _) `compare`
-          x@(VkViSurfaceCreateInfoNN## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -55,18 +52,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkViSurfaceCreateInfoNN where
-        unsafeAddr (VkViSurfaceCreateInfoNN## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkViSurfaceCreateInfoNN## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkViSurfaceCreateInfoNN## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkViSurfaceCreateInfoNN where
         type StructFields VkViSurfaceCreateInfoNN =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PlatformWaylandKhr.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PlatformWaylandKhr.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/PlatformWaylandKhr.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PlatformWaylandKhr.hsc
@@ -8,17 +8,15 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.PlatformWaylandKhr
-       (VkWaylandSurfaceCreateInfoKHR(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks           (VkWaylandSurfaceCreateFlagsKHR)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Include            (WlDisplay, WlSurface)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkWaylandSurfaceCreateInfoKHR, VkWaylandSurfaceCreateInfoKHR') -- ' closing tick for hsc2hs
+       where
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Bitmasks           (VkWaylandSurfaceCreateFlagsKHR)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Include            (WlDisplay, WlSurface)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkWaylandSurfaceCreateInfoKHR {
 --   >     VkStructureType sType;
@@ -29,19 +27,18 @@
 --   > } VkWaylandSurfaceCreateInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkWaylandSurfaceCreateInfoKHR VkWaylandSurfaceCreateInfoKHR registry at www.khronos.org>
-data VkWaylandSurfaceCreateInfoKHR = VkWaylandSurfaceCreateInfoKHR## Addr##
-                                                                    ByteArray##
+type VkWaylandSurfaceCreateInfoKHR =
+     VulkanStruct VkWaylandSurfaceCreateInfoKHR' -- ' closing tick for hsc2hs
 
+data VkWaylandSurfaceCreateInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkWaylandSurfaceCreateInfoKHR where
-        (VkWaylandSurfaceCreateInfoKHR## a _) ==
-          x@(VkWaylandSurfaceCreateInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkWaylandSurfaceCreateInfoKHR where
-        (VkWaylandSurfaceCreateInfoKHR## a _) `compare`
-          x@(VkWaylandSurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -59,20 +56,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkWaylandSurfaceCreateInfoKHR where
-        unsafeAddr (VkWaylandSurfaceCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkWaylandSurfaceCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkWaylandSurfaceCreateInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkWaylandSurfaceCreateInfoKHR where
         type StructFields VkWaylandSurfaceCreateInfoKHR =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PlatformWin32Khr.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PlatformWin32Khr.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/PlatformWin32Khr.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PlatformWin32Khr.hsc
@@ -8,50 +8,51 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.PlatformWin32Khr
-       (VkD3D12FenceSubmitInfoKHR(..),
-        VkExportFenceWin32HandleInfoKHR(..),
-        VkExportMemoryWin32HandleInfoKHR(..),
-        VkExportMemoryWin32HandleInfoNV(..),
-        VkExportSemaphoreWin32HandleInfoKHR(..),
-        VkFenceGetWin32HandleInfoKHR(..),
-        VkImportFenceWin32HandleInfoKHR(..),
-        VkImportMemoryWin32HandleInfoKHR(..),
-        VkImportMemoryWin32HandleInfoNV(..),
-        VkImportSemaphoreWin32HandleInfoKHR(..),
-        VkMemoryGetWin32HandleInfoKHR(..),
-        VkMemoryWin32HandlePropertiesKHR(..),
-        VkSemaphoreGetWin32HandleInfoKHR(..),
-        VkWin32KeyedMutexAcquireReleaseInfoKHR(..),
-        VkWin32KeyedMutexAcquireReleaseInfoNV(..),
-        VkWin32SurfaceCreateInfoKHR(..))
+       (VkD3D12FenceSubmitInfoKHR, VkD3D12FenceSubmitInfoKHR', -- ' closing tick for hsc2hs
+        VkExportFenceWin32HandleInfoKHR, VkExportFenceWin32HandleInfoKHR', -- ' closing tick for hsc2hs
+        VkExportMemoryWin32HandleInfoKHR,
+        VkExportMemoryWin32HandleInfoKHR', VkExportMemoryWin32HandleInfoNV, -- ' closing tick for hsc2hs
+        VkExportMemoryWin32HandleInfoNV', -- ' closing tick for hsc2hs
+        VkExportSemaphoreWin32HandleInfoKHR,
+        VkExportSemaphoreWin32HandleInfoKHR', VkFenceGetWin32HandleInfoKHR, -- ' closing tick for hsc2hs
+        VkFenceGetWin32HandleInfoKHR', VkImportFenceWin32HandleInfoKHR, -- ' closing tick for hsc2hs
+        VkImportFenceWin32HandleInfoKHR', VkImportMemoryWin32HandleInfoKHR, -- ' closing tick for hsc2hs
+        VkImportMemoryWin32HandleInfoKHR', VkImportMemoryWin32HandleInfoNV, -- ' closing tick for hsc2hs
+        VkImportMemoryWin32HandleInfoNV', -- ' closing tick for hsc2hs
+        VkImportSemaphoreWin32HandleInfoKHR,
+        VkImportSemaphoreWin32HandleInfoKHR', -- ' closing tick for hsc2hs
+        VkMemoryGetWin32HandleInfoKHR, VkMemoryGetWin32HandleInfoKHR', -- ' closing tick for hsc2hs
+        VkMemoryWin32HandlePropertiesKHR,
+        VkMemoryWin32HandlePropertiesKHR', -- ' closing tick for hsc2hs
+        VkSemaphoreGetWin32HandleInfoKHR,
+        VkSemaphoreGetWin32HandleInfoKHR', -- ' closing tick for hsc2hs
+        VkWin32KeyedMutexAcquireReleaseInfoKHR,
+        VkWin32KeyedMutexAcquireReleaseInfoKHR', -- ' closing tick for hsc2hs
+        VkWin32KeyedMutexAcquireReleaseInfoNV,
+        VkWin32KeyedMutexAcquireReleaseInfoNV', -- ' closing tick for hsc2hs
+        VkWin32SurfaceCreateInfoKHR, VkWin32SurfaceCreateInfoKHR') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                               (Storable (..))
-import           GHC.Base                                       (Addr##,
-                                                                 ByteArray##,
-                                                                 byteArrayContents##,
-                                                                 plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks                 (VkWin32SurfaceCreateFlagsKHR)
-import           Graphics.Vulkan.Types.Enum.External            (VkExternalFenceHandleTypeFlagBits,
-                                                                 VkExternalMemoryHandleTypeFlagBits,
-                                                                 VkExternalMemoryHandleTypeFlagsNV,
-                                                                 VkExternalSemaphoreHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.Fence               (VkFenceImportFlags)
-import           Graphics.Vulkan.Types.Enum.SemaphoreImportFlag (VkSemaphoreImportFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType       (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                  (VkDeviceMemory,
-                                                                 VkFence,
-                                                                 VkSemaphore)
-import           Graphics.Vulkan.Types.Include                  (DWORD, HANDLE,
-                                                                 HINSTANCE,
-                                                                 HWND, LPCWSTR,
-                                                                 SECURITY_ATTRIBUTES)
-import           Graphics.Vulkan.Types.Struct.Fence             (VkFenceCreateInfo)
-import           Graphics.Vulkan.Types.Struct.Memory            (VkMemoryAllocateInfo)
-import           Graphics.Vulkan.Types.Struct.Semaphore         (VkSemaphoreCreateInfo)
-import           Graphics.Vulkan.Types.Struct.SubmitInfo        (VkSubmitInfo)
-import           System.IO.Unsafe                               (unsafeDupablePerformIO)
+import Foreign.Storable                               (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Bitmasks                 (VkWin32SurfaceCreateFlagsKHR)
+import Graphics.Vulkan.Types.Enum.External            (VkExternalFenceHandleTypeFlagBits,
+                                                       VkExternalMemoryHandleTypeFlagBits,
+                                                       VkExternalMemoryHandleTypeFlagsNV,
+                                                       VkExternalSemaphoreHandleTypeFlagBits)
+import Graphics.Vulkan.Types.Enum.Fence               (VkFenceImportFlags)
+import Graphics.Vulkan.Types.Enum.SemaphoreImportFlag (VkSemaphoreImportFlags)
+import Graphics.Vulkan.Types.Enum.StructureType       (VkStructureType)
+import Graphics.Vulkan.Types.Handles                  (VkDeviceMemory, VkFence,
+                                                       VkSemaphore)
+import Graphics.Vulkan.Types.Include                  (DWORD, HANDLE, HINSTANCE,
+                                                       HWND, LPCWSTR,
+                                                       SECURITY_ATTRIBUTES)
+import Graphics.Vulkan.Types.Struct.Fence             (VkFenceCreateInfo)
+import Graphics.Vulkan.Types.Struct.Memory            (VkMemoryAllocateInfo)
+import Graphics.Vulkan.Types.Struct.Semaphore         (VkSemaphoreCreateInfo)
+import Graphics.Vulkan.Types.Struct.SubmitInfo        (VkSubmitInfo)
+import System.IO.Unsafe                               (unsafeDupablePerformIO)
 
 -- | > typedef struct VkD3D12FenceSubmitInfoKHR {
 --   >     VkStructureType sType;
@@ -63,18 +64,18 @@
 --   > } VkD3D12FenceSubmitInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkD3D12FenceSubmitInfoKHR VkD3D12FenceSubmitInfoKHR registry at www.khronos.org>
-data VkD3D12FenceSubmitInfoKHR = VkD3D12FenceSubmitInfoKHR## Addr##
-                                                            ByteArray##
+type VkD3D12FenceSubmitInfoKHR =
+     VulkanStruct VkD3D12FenceSubmitInfoKHR' -- ' closing tick for hsc2hs
 
+data VkD3D12FenceSubmitInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkD3D12FenceSubmitInfoKHR where
-        (VkD3D12FenceSubmitInfoKHR## a _) ==
-          x@(VkD3D12FenceSubmitInfoKHR## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkD3D12FenceSubmitInfoKHR where
-        (VkD3D12FenceSubmitInfoKHR## a _) `compare`
-          x@(VkD3D12FenceSubmitInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -92,19 +93,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkD3D12FenceSubmitInfoKHR where
-        unsafeAddr (VkD3D12FenceSubmitInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkD3D12FenceSubmitInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkD3D12FenceSubmitInfoKHR## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkD3D12FenceSubmitInfoKHR where
         type StructFields VkD3D12FenceSubmitInfoKHR =
              '["sType", "pNext", "waitSemaphoreValuesCount", -- ' closing tick for hsc2hs
@@ -370,19 +358,18 @@
 --   > } VkExportFenceWin32HandleInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExportFenceWin32HandleInfoKHR VkExportFenceWin32HandleInfoKHR registry at www.khronos.org>
-data VkExportFenceWin32HandleInfoKHR = VkExportFenceWin32HandleInfoKHR## Addr##
-                                                                        ByteArray##
+type VkExportFenceWin32HandleInfoKHR =
+     VulkanStruct VkExportFenceWin32HandleInfoKHR' -- ' closing tick for hsc2hs
 
+data VkExportFenceWin32HandleInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkExportFenceWin32HandleInfoKHR where
-        (VkExportFenceWin32HandleInfoKHR## a _) ==
-          x@(VkExportFenceWin32HandleInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExportFenceWin32HandleInfoKHR where
-        (VkExportFenceWin32HandleInfoKHR## a _) `compare`
-          x@(VkExportFenceWin32HandleInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -401,20 +388,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkExportFenceWin32HandleInfoKHR where
-        unsafeAddr (VkExportFenceWin32HandleInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExportFenceWin32HandleInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExportFenceWin32HandleInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkExportFenceWin32HandleInfoKHR where
         type StructFields VkExportFenceWin32HandleInfoKHR =
              '["sType", "pNext", "pAttributes", "dwAccess", "name"] -- ' closing tick for hsc2hs
@@ -616,20 +589,18 @@
 --   > } VkExportMemoryWin32HandleInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExportMemoryWin32HandleInfoKHR VkExportMemoryWin32HandleInfoKHR registry at www.khronos.org>
-data VkExportMemoryWin32HandleInfoKHR = VkExportMemoryWin32HandleInfoKHR## Addr##
-                                                                          ByteArray##
+type VkExportMemoryWin32HandleInfoKHR =
+     VulkanStruct VkExportMemoryWin32HandleInfoKHR' -- ' closing tick for hsc2hs
 
+data VkExportMemoryWin32HandleInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkExportMemoryWin32HandleInfoKHR where
-        (VkExportMemoryWin32HandleInfoKHR## a _) ==
-          x@(VkExportMemoryWin32HandleInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExportMemoryWin32HandleInfoKHR where
-        (VkExportMemoryWin32HandleInfoKHR## a _) `compare`
-          x@(VkExportMemoryWin32HandleInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -648,20 +619,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkExportMemoryWin32HandleInfoKHR where
-        unsafeAddr (VkExportMemoryWin32HandleInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExportMemoryWin32HandleInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExportMemoryWin32HandleInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkExportMemoryWin32HandleInfoKHR where
         type StructFields VkExportMemoryWin32HandleInfoKHR =
              '["sType", "pNext", "pAttributes", "dwAccess", "name"] -- ' closing tick for hsc2hs
@@ -864,19 +821,18 @@
 --   > } VkExportMemoryWin32HandleInfoNV;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExportMemoryWin32HandleInfoNV VkExportMemoryWin32HandleInfoNV registry at www.khronos.org>
-data VkExportMemoryWin32HandleInfoNV = VkExportMemoryWin32HandleInfoNV## Addr##
-                                                                        ByteArray##
+type VkExportMemoryWin32HandleInfoNV =
+     VulkanStruct VkExportMemoryWin32HandleInfoNV' -- ' closing tick for hsc2hs
 
+data VkExportMemoryWin32HandleInfoNV' -- ' closing tick for hsc2hs
+
 instance Eq VkExportMemoryWin32HandleInfoNV where
-        (VkExportMemoryWin32HandleInfoNV## a _) ==
-          x@(VkExportMemoryWin32HandleInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExportMemoryWin32HandleInfoNV where
-        (VkExportMemoryWin32HandleInfoNV## a _) `compare`
-          x@(VkExportMemoryWin32HandleInfoNV## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -895,20 +851,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkExportMemoryWin32HandleInfoNV where
-        unsafeAddr (VkExportMemoryWin32HandleInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExportMemoryWin32HandleInfoNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExportMemoryWin32HandleInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkExportMemoryWin32HandleInfoNV where
         type StructFields VkExportMemoryWin32HandleInfoNV =
              '["sType", "pNext", "pAttributes", "dwAccess"] -- ' closing tick for hsc2hs
@@ -1075,20 +1017,18 @@
 --   > } VkExportSemaphoreWin32HandleInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExportSemaphoreWin32HandleInfoKHR VkExportSemaphoreWin32HandleInfoKHR registry at www.khronos.org>
-data VkExportSemaphoreWin32HandleInfoKHR = VkExportSemaphoreWin32HandleInfoKHR## Addr##
-                                                                                ByteArray##
+type VkExportSemaphoreWin32HandleInfoKHR =
+     VulkanStruct VkExportSemaphoreWin32HandleInfoKHR' -- ' closing tick for hsc2hs
 
+data VkExportSemaphoreWin32HandleInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkExportSemaphoreWin32HandleInfoKHR where
-        (VkExportSemaphoreWin32HandleInfoKHR## a _) ==
-          x@(VkExportSemaphoreWin32HandleInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkExportSemaphoreWin32HandleInfoKHR where
-        (VkExportSemaphoreWin32HandleInfoKHR## a _) `compare`
-          x@(VkExportSemaphoreWin32HandleInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1107,21 +1047,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkExportSemaphoreWin32HandleInfoKHR
-         where
-        unsafeAddr (VkExportSemaphoreWin32HandleInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExportSemaphoreWin32HandleInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExportSemaphoreWin32HandleInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkExportSemaphoreWin32HandleInfoKHR where
         type StructFields VkExportSemaphoreWin32HandleInfoKHR =
              '["sType", "pNext", "pAttributes", "dwAccess", "name"] -- ' closing tick for hsc2hs
@@ -1334,19 +1259,18 @@
 --   > } VkFenceGetWin32HandleInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkFenceGetWin32HandleInfoKHR VkFenceGetWin32HandleInfoKHR registry at www.khronos.org>
-data VkFenceGetWin32HandleInfoKHR = VkFenceGetWin32HandleInfoKHR## Addr##
-                                                                  ByteArray##
+type VkFenceGetWin32HandleInfoKHR =
+     VulkanStruct VkFenceGetWin32HandleInfoKHR' -- ' closing tick for hsc2hs
 
+data VkFenceGetWin32HandleInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkFenceGetWin32HandleInfoKHR where
-        (VkFenceGetWin32HandleInfoKHR## a _) ==
-          x@(VkFenceGetWin32HandleInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkFenceGetWin32HandleInfoKHR where
-        (VkFenceGetWin32HandleInfoKHR## a _) `compare`
-          x@(VkFenceGetWin32HandleInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1365,20 +1289,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkFenceGetWin32HandleInfoKHR where
-        unsafeAddr (VkFenceGetWin32HandleInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkFenceGetWin32HandleInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkFenceGetWin32HandleInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkFenceGetWin32HandleInfoKHR where
         type StructFields VkFenceGetWin32HandleInfoKHR =
              '["sType", "pNext", "fence", "handleType"] -- ' closing tick for hsc2hs
@@ -1544,19 +1454,18 @@
 --   > } VkImportFenceWin32HandleInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportFenceWin32HandleInfoKHR VkImportFenceWin32HandleInfoKHR registry at www.khronos.org>
-data VkImportFenceWin32HandleInfoKHR = VkImportFenceWin32HandleInfoKHR## Addr##
-                                                                        ByteArray##
+type VkImportFenceWin32HandleInfoKHR =
+     VulkanStruct VkImportFenceWin32HandleInfoKHR' -- ' closing tick for hsc2hs
 
+data VkImportFenceWin32HandleInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkImportFenceWin32HandleInfoKHR where
-        (VkImportFenceWin32HandleInfoKHR## a _) ==
-          x@(VkImportFenceWin32HandleInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImportFenceWin32HandleInfoKHR where
-        (VkImportFenceWin32HandleInfoKHR## a _) `compare`
-          x@(VkImportFenceWin32HandleInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1575,20 +1484,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImportFenceWin32HandleInfoKHR where
-        unsafeAddr (VkImportFenceWin32HandleInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImportFenceWin32HandleInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImportFenceWin32HandleInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImportFenceWin32HandleInfoKHR where
         type StructFields VkImportFenceWin32HandleInfoKHR =
              '["sType", "pNext", "fence", "flags", "handleType", "handle", -- ' closing tick for hsc2hs
@@ -1859,20 +1754,18 @@
 --   > } VkImportMemoryWin32HandleInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportMemoryWin32HandleInfoKHR VkImportMemoryWin32HandleInfoKHR registry at www.khronos.org>
-data VkImportMemoryWin32HandleInfoKHR = VkImportMemoryWin32HandleInfoKHR## Addr##
-                                                                          ByteArray##
+type VkImportMemoryWin32HandleInfoKHR =
+     VulkanStruct VkImportMemoryWin32HandleInfoKHR' -- ' closing tick for hsc2hs
 
+data VkImportMemoryWin32HandleInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkImportMemoryWin32HandleInfoKHR where
-        (VkImportMemoryWin32HandleInfoKHR## a _) ==
-          x@(VkImportMemoryWin32HandleInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImportMemoryWin32HandleInfoKHR where
-        (VkImportMemoryWin32HandleInfoKHR## a _) `compare`
-          x@(VkImportMemoryWin32HandleInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1891,20 +1784,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImportMemoryWin32HandleInfoKHR where
-        unsafeAddr (VkImportMemoryWin32HandleInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImportMemoryWin32HandleInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImportMemoryWin32HandleInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImportMemoryWin32HandleInfoKHR where
         type StructFields VkImportMemoryWin32HandleInfoKHR =
              '["sType", "pNext", "handleType", "handle", "name"] -- ' closing tick for hsc2hs
@@ -2107,19 +1986,18 @@
 --   > } VkImportMemoryWin32HandleInfoNV;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportMemoryWin32HandleInfoNV VkImportMemoryWin32HandleInfoNV registry at www.khronos.org>
-data VkImportMemoryWin32HandleInfoNV = VkImportMemoryWin32HandleInfoNV## Addr##
-                                                                        ByteArray##
+type VkImportMemoryWin32HandleInfoNV =
+     VulkanStruct VkImportMemoryWin32HandleInfoNV' -- ' closing tick for hsc2hs
 
+data VkImportMemoryWin32HandleInfoNV' -- ' closing tick for hsc2hs
+
 instance Eq VkImportMemoryWin32HandleInfoNV where
-        (VkImportMemoryWin32HandleInfoNV## a _) ==
-          x@(VkImportMemoryWin32HandleInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImportMemoryWin32HandleInfoNV where
-        (VkImportMemoryWin32HandleInfoNV## a _) `compare`
-          x@(VkImportMemoryWin32HandleInfoNV## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2138,20 +2016,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImportMemoryWin32HandleInfoNV where
-        unsafeAddr (VkImportMemoryWin32HandleInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImportMemoryWin32HandleInfoNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImportMemoryWin32HandleInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImportMemoryWin32HandleInfoNV where
         type StructFields VkImportMemoryWin32HandleInfoNV =
              '["sType", "pNext", "handleType", "handle"] -- ' closing tick for hsc2hs
@@ -2318,20 +2182,18 @@
 --   > } VkImportSemaphoreWin32HandleInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportSemaphoreWin32HandleInfoKHR VkImportSemaphoreWin32HandleInfoKHR registry at www.khronos.org>
-data VkImportSemaphoreWin32HandleInfoKHR = VkImportSemaphoreWin32HandleInfoKHR## Addr##
-                                                                                ByteArray##
+type VkImportSemaphoreWin32HandleInfoKHR =
+     VulkanStruct VkImportSemaphoreWin32HandleInfoKHR' -- ' closing tick for hsc2hs
 
+data VkImportSemaphoreWin32HandleInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkImportSemaphoreWin32HandleInfoKHR where
-        (VkImportSemaphoreWin32HandleInfoKHR## a _) ==
-          x@(VkImportSemaphoreWin32HandleInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkImportSemaphoreWin32HandleInfoKHR where
-        (VkImportSemaphoreWin32HandleInfoKHR## a _) `compare`
-          x@(VkImportSemaphoreWin32HandleInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2350,21 +2212,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkImportSemaphoreWin32HandleInfoKHR
-         where
-        unsafeAddr (VkImportSemaphoreWin32HandleInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImportSemaphoreWin32HandleInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImportSemaphoreWin32HandleInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkImportSemaphoreWin32HandleInfoKHR where
         type StructFields VkImportSemaphoreWin32HandleInfoKHR =
              '["sType", "pNext", "semaphore", "flags", "handleType", "handle", -- ' closing tick for hsc2hs
@@ -2650,19 +2497,18 @@
 --   > } VkMemoryGetWin32HandleInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryGetWin32HandleInfoKHR VkMemoryGetWin32HandleInfoKHR registry at www.khronos.org>
-data VkMemoryGetWin32HandleInfoKHR = VkMemoryGetWin32HandleInfoKHR## Addr##
-                                                                    ByteArray##
+type VkMemoryGetWin32HandleInfoKHR =
+     VulkanStruct VkMemoryGetWin32HandleInfoKHR' -- ' closing tick for hsc2hs
 
+data VkMemoryGetWin32HandleInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkMemoryGetWin32HandleInfoKHR where
-        (VkMemoryGetWin32HandleInfoKHR## a _) ==
-          x@(VkMemoryGetWin32HandleInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkMemoryGetWin32HandleInfoKHR where
-        (VkMemoryGetWin32HandleInfoKHR## a _) `compare`
-          x@(VkMemoryGetWin32HandleInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2681,20 +2527,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkMemoryGetWin32HandleInfoKHR where
-        unsafeAddr (VkMemoryGetWin32HandleInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryGetWin32HandleInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryGetWin32HandleInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkMemoryGetWin32HandleInfoKHR where
         type StructFields VkMemoryGetWin32HandleInfoKHR =
              '["sType", "pNext", "memory", "handleType"] -- ' closing tick for hsc2hs
@@ -2857,20 +2689,18 @@
 --   > } VkMemoryWin32HandlePropertiesKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryWin32HandlePropertiesKHR VkMemoryWin32HandlePropertiesKHR registry at www.khronos.org>
-data VkMemoryWin32HandlePropertiesKHR = VkMemoryWin32HandlePropertiesKHR## Addr##
-                                                                          ByteArray##
+type VkMemoryWin32HandlePropertiesKHR =
+     VulkanStruct VkMemoryWin32HandlePropertiesKHR' -- ' closing tick for hsc2hs
 
+data VkMemoryWin32HandlePropertiesKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkMemoryWin32HandlePropertiesKHR where
-        (VkMemoryWin32HandlePropertiesKHR## a _) ==
-          x@(VkMemoryWin32HandlePropertiesKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkMemoryWin32HandlePropertiesKHR where
-        (VkMemoryWin32HandlePropertiesKHR## a _) `compare`
-          x@(VkMemoryWin32HandlePropertiesKHR## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -2889,20 +2719,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkMemoryWin32HandlePropertiesKHR where
-        unsafeAddr (VkMemoryWin32HandlePropertiesKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryWin32HandlePropertiesKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryWin32HandlePropertiesKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkMemoryWin32HandlePropertiesKHR where
         type StructFields VkMemoryWin32HandlePropertiesKHR =
              '["sType", "pNext", "memoryTypeBits"] -- ' closing tick for hsc2hs
@@ -3036,20 +2852,18 @@
 --   > } VkSemaphoreGetWin32HandleInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSemaphoreGetWin32HandleInfoKHR VkSemaphoreGetWin32HandleInfoKHR registry at www.khronos.org>
-data VkSemaphoreGetWin32HandleInfoKHR = VkSemaphoreGetWin32HandleInfoKHR## Addr##
-                                                                          ByteArray##
+type VkSemaphoreGetWin32HandleInfoKHR =
+     VulkanStruct VkSemaphoreGetWin32HandleInfoKHR' -- ' closing tick for hsc2hs
 
+data VkSemaphoreGetWin32HandleInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkSemaphoreGetWin32HandleInfoKHR where
-        (VkSemaphoreGetWin32HandleInfoKHR## a _) ==
-          x@(VkSemaphoreGetWin32HandleInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSemaphoreGetWin32HandleInfoKHR where
-        (VkSemaphoreGetWin32HandleInfoKHR## a _) `compare`
-          x@(VkSemaphoreGetWin32HandleInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -3068,20 +2882,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSemaphoreGetWin32HandleInfoKHR where
-        unsafeAddr (VkSemaphoreGetWin32HandleInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSemaphoreGetWin32HandleInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSemaphoreGetWin32HandleInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSemaphoreGetWin32HandleInfoKHR where
         type StructFields VkSemaphoreGetWin32HandleInfoKHR =
              '["sType", "pNext", "semaphore", "handleType"] -- ' closing tick for hsc2hs
@@ -3254,20 +3054,18 @@
 --   > } VkWin32KeyedMutexAcquireReleaseInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkWin32KeyedMutexAcquireReleaseInfoKHR VkWin32KeyedMutexAcquireReleaseInfoKHR registry at www.khronos.org>
-data VkWin32KeyedMutexAcquireReleaseInfoKHR = VkWin32KeyedMutexAcquireReleaseInfoKHR## Addr##
-                                                                                      ByteArray##
+type VkWin32KeyedMutexAcquireReleaseInfoKHR =
+     VulkanStruct VkWin32KeyedMutexAcquireReleaseInfoKHR' -- ' closing tick for hsc2hs
 
+data VkWin32KeyedMutexAcquireReleaseInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkWin32KeyedMutexAcquireReleaseInfoKHR where
-        (VkWin32KeyedMutexAcquireReleaseInfoKHR## a _) ==
-          x@(VkWin32KeyedMutexAcquireReleaseInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkWin32KeyedMutexAcquireReleaseInfoKHR where
-        (VkWin32KeyedMutexAcquireReleaseInfoKHR## a _) `compare`
-          x@(VkWin32KeyedMutexAcquireReleaseInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -3287,21 +3085,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        unsafeAddr (VkWin32KeyedMutexAcquireReleaseInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkWin32KeyedMutexAcquireReleaseInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkWin32KeyedMutexAcquireReleaseInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkWin32KeyedMutexAcquireReleaseInfoKHR where
         type StructFields VkWin32KeyedMutexAcquireReleaseInfoKHR =
              '["sType", "pNext", "acquireCount", "pAcquireSyncs", -- ' closing tick for hsc2hs
@@ -3733,20 +3516,18 @@
 --   > } VkWin32KeyedMutexAcquireReleaseInfoNV;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkWin32KeyedMutexAcquireReleaseInfoNV VkWin32KeyedMutexAcquireReleaseInfoNV registry at www.khronos.org>
-data VkWin32KeyedMutexAcquireReleaseInfoNV = VkWin32KeyedMutexAcquireReleaseInfoNV## Addr##
-                                                                                    ByteArray##
+type VkWin32KeyedMutexAcquireReleaseInfoNV =
+     VulkanStruct VkWin32KeyedMutexAcquireReleaseInfoNV' -- ' closing tick for hsc2hs
 
+data VkWin32KeyedMutexAcquireReleaseInfoNV' -- ' closing tick for hsc2hs
+
 instance Eq VkWin32KeyedMutexAcquireReleaseInfoNV where
-        (VkWin32KeyedMutexAcquireReleaseInfoNV## a _) ==
-          x@(VkWin32KeyedMutexAcquireReleaseInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkWin32KeyedMutexAcquireReleaseInfoNV where
-        (VkWin32KeyedMutexAcquireReleaseInfoNV## a _) `compare`
-          x@(VkWin32KeyedMutexAcquireReleaseInfoNV## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -3766,21 +3547,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkWin32KeyedMutexAcquireReleaseInfoNV
-         where
-        unsafeAddr (VkWin32KeyedMutexAcquireReleaseInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkWin32KeyedMutexAcquireReleaseInfoNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkWin32KeyedMutexAcquireReleaseInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkWin32KeyedMutexAcquireReleaseInfoNV where
         type StructFields VkWin32KeyedMutexAcquireReleaseInfoNV =
              '["sType", "pNext", "acquireCount", "pAcquireSyncs", -- ' closing tick for hsc2hs
@@ -4201,19 +3967,18 @@
 --   > } VkWin32SurfaceCreateInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkWin32SurfaceCreateInfoKHR VkWin32SurfaceCreateInfoKHR registry at www.khronos.org>
-data VkWin32SurfaceCreateInfoKHR = VkWin32SurfaceCreateInfoKHR## Addr##
-                                                                ByteArray##
+type VkWin32SurfaceCreateInfoKHR =
+     VulkanStruct VkWin32SurfaceCreateInfoKHR' -- ' closing tick for hsc2hs
 
+data VkWin32SurfaceCreateInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkWin32SurfaceCreateInfoKHR where
-        (VkWin32SurfaceCreateInfoKHR## a _) ==
-          x@(VkWin32SurfaceCreateInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkWin32SurfaceCreateInfoKHR where
-        (VkWin32SurfaceCreateInfoKHR## a _) `compare`
-          x@(VkWin32SurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -4230,20 +3995,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkWin32SurfaceCreateInfoKHR where
-        unsafeAddr (VkWin32SurfaceCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkWin32SurfaceCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkWin32SurfaceCreateInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkWin32SurfaceCreateInfoKHR where
         type StructFields VkWin32SurfaceCreateInfoKHR =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PlatformXcbKhr.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PlatformXcbKhr.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/PlatformXcbKhr.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PlatformXcbKhr.hsc
@@ -8,18 +8,14 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.PlatformXcbKhr
-       (VkXcbSurfaceCreateInfoKHR(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks           (VkXcbSurfaceCreateFlagsKHR)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Include            (XcbConnectionT,
-                                                           XcbWindowT)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkXcbSurfaceCreateInfoKHR, VkXcbSurfaceCreateInfoKHR') where -- ' closing tick for hsc2hs
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Bitmasks           (VkXcbSurfaceCreateFlagsKHR)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Include            (XcbConnectionT, XcbWindowT)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkXcbSurfaceCreateInfoKHR {
 --   >     VkStructureType sType;
@@ -30,18 +26,18 @@
 --   > } VkXcbSurfaceCreateInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkXcbSurfaceCreateInfoKHR VkXcbSurfaceCreateInfoKHR registry at www.khronos.org>
-data VkXcbSurfaceCreateInfoKHR = VkXcbSurfaceCreateInfoKHR## Addr##
-                                                            ByteArray##
+type VkXcbSurfaceCreateInfoKHR =
+     VulkanStruct VkXcbSurfaceCreateInfoKHR' -- ' closing tick for hsc2hs
 
+data VkXcbSurfaceCreateInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkXcbSurfaceCreateInfoKHR where
-        (VkXcbSurfaceCreateInfoKHR## a _) ==
-          x@(VkXcbSurfaceCreateInfoKHR## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkXcbSurfaceCreateInfoKHR where
-        (VkXcbSurfaceCreateInfoKHR## a _) `compare`
-          x@(VkXcbSurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -58,19 +54,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkXcbSurfaceCreateInfoKHR where
-        unsafeAddr (VkXcbSurfaceCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkXcbSurfaceCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkXcbSurfaceCreateInfoKHR## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkXcbSurfaceCreateInfoKHR where
         type StructFields VkXcbSurfaceCreateInfoKHR =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PlatformXlibKhr.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PlatformXlibKhr.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/PlatformXlibKhr.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PlatformXlibKhr.hsc
@@ -8,17 +8,14 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.PlatformXlibKhr
-       (VkXlibSurfaceCreateInfoKHR(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks           (VkXlibSurfaceCreateFlagsKHR)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Include            (Display, Window)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkXlibSurfaceCreateInfoKHR, VkXlibSurfaceCreateInfoKHR') where -- ' closing tick for hsc2hs
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Bitmasks           (VkXlibSurfaceCreateFlagsKHR)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Include            (Display, Window)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkXlibSurfaceCreateInfoKHR {
 --   >     VkStructureType sType;
@@ -29,19 +26,18 @@
 --   > } VkXlibSurfaceCreateInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkXlibSurfaceCreateInfoKHR VkXlibSurfaceCreateInfoKHR registry at www.khronos.org>
-data VkXlibSurfaceCreateInfoKHR = VkXlibSurfaceCreateInfoKHR## Addr##
-                                                              ByteArray##
+type VkXlibSurfaceCreateInfoKHR =
+     VulkanStruct VkXlibSurfaceCreateInfoKHR' -- ' closing tick for hsc2hs
 
+data VkXlibSurfaceCreateInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkXlibSurfaceCreateInfoKHR where
-        (VkXlibSurfaceCreateInfoKHR## a _) ==
-          x@(VkXlibSurfaceCreateInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkXlibSurfaceCreateInfoKHR where
-        (VkXlibSurfaceCreateInfoKHR## a _) `compare`
-          x@(VkXlibSurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -58,20 +54,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkXlibSurfaceCreateInfoKHR where
-        unsafeAddr (VkXlibSurfaceCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkXlibSurfaceCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkXlibSurfaceCreateInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkXlibSurfaceCreateInfoKHR where
         type StructFields VkXlibSurfaceCreateInfoKHR =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Present.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Present.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Present.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Present.hsc
@@ -8,22 +8,19 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Present
-       (VkPresentInfoKHR(..), VkPresentRegionKHR(..),
-        VkPresentRegionsKHR(..), VkPresentTimeGOOGLE(..),
-        VkPresentTimesInfoGOOGLE(..))
+       (VkPresentInfoKHR, VkPresentInfoKHR', VkPresentRegionKHR, -- ' closing tick for hsc2hs
+        VkPresentRegionKHR', VkPresentRegionsKHR, VkPresentRegionsKHR',
+        VkPresentTimeGOOGLE, VkPresentTimeGOOGLE', -- ' closing tick for hsc2hs
+        VkPresentTimesInfoGOOGLE, VkPresentTimesInfoGOOGLE') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.Result        (VkResult)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles            (VkSemaphore,
-                                                           VkSwapchainKHR)
-import           Graphics.Vulkan.Types.Struct.Rect        (VkRectLayerKHR)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.Result        (VkResult)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Handles            (VkSemaphore, VkSwapchainKHR)
+import Graphics.Vulkan.Types.Struct.Rect        (VkRectLayerKHR)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkPresentInfoKHR {
 --   >     VkStructureType sType;
@@ -37,17 +34,17 @@
 --   > } VkPresentInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPresentInfoKHR VkPresentInfoKHR registry at www.khronos.org>
-data VkPresentInfoKHR = VkPresentInfoKHR## Addr## ByteArray##
+type VkPresentInfoKHR = VulkanStruct VkPresentInfoKHR' -- ' closing tick for hsc2hs
 
+data VkPresentInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkPresentInfoKHR where
-        (VkPresentInfoKHR## a _) == x@(VkPresentInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPresentInfoKHR where
-        (VkPresentInfoKHR## a _) `compare` x@(VkPresentInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -65,18 +62,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkPresentInfoKHR where
-        unsafeAddr (VkPresentInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPresentInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPresentInfoKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPresentInfoKHR where
         type StructFields VkPresentInfoKHR =
              '["sType", "pNext", "waitSemaphoreCount", "pWaitSemaphores", -- ' closing tick for hsc2hs
@@ -370,17 +355,17 @@
 --   > } VkPresentRegionKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPresentRegionKHR VkPresentRegionKHR registry at www.khronos.org>
-data VkPresentRegionKHR = VkPresentRegionKHR## Addr## ByteArray##
+type VkPresentRegionKHR = VulkanStruct VkPresentRegionKHR' -- ' closing tick for hsc2hs
 
+data VkPresentRegionKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkPresentRegionKHR where
-        (VkPresentRegionKHR## a _) == x@(VkPresentRegionKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPresentRegionKHR where
-        (VkPresentRegionKHR## a _) `compare` x@(VkPresentRegionKHR## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -398,18 +383,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkPresentRegionKHR where
-        unsafeAddr (VkPresentRegionKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPresentRegionKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPresentRegionKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPresentRegionKHR where
         type StructFields VkPresentRegionKHR =
              '["rectangleCount", "pRectangles"] -- ' closing tick for hsc2hs
@@ -498,17 +471,17 @@
 --   > } VkPresentRegionsKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPresentRegionsKHR VkPresentRegionsKHR registry at www.khronos.org>
-data VkPresentRegionsKHR = VkPresentRegionsKHR## Addr## ByteArray##
+type VkPresentRegionsKHR = VulkanStruct VkPresentRegionsKHR' -- ' closing tick for hsc2hs
 
+data VkPresentRegionsKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkPresentRegionsKHR where
-        (VkPresentRegionsKHR## a _) == x@(VkPresentRegionsKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPresentRegionsKHR where
-        (VkPresentRegionsKHR## a _) `compare` x@(VkPresentRegionsKHR## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -526,18 +499,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkPresentRegionsKHR where
-        unsafeAddr (VkPresentRegionsKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPresentRegionsKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPresentRegionsKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPresentRegionsKHR where
         type StructFields VkPresentRegionsKHR =
              '["sType", "pNext", "swapchainCount", "pRegions"] -- ' closing tick for hsc2hs
@@ -692,17 +653,17 @@
 --   > } VkPresentTimeGOOGLE;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPresentTimeGOOGLE VkPresentTimeGOOGLE registry at www.khronos.org>
-data VkPresentTimeGOOGLE = VkPresentTimeGOOGLE## Addr## ByteArray##
+type VkPresentTimeGOOGLE = VulkanStruct VkPresentTimeGOOGLE' -- ' closing tick for hsc2hs
 
+data VkPresentTimeGOOGLE' -- ' closing tick for hsc2hs
+
 instance Eq VkPresentTimeGOOGLE where
-        (VkPresentTimeGOOGLE## a _) == x@(VkPresentTimeGOOGLE## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPresentTimeGOOGLE where
-        (VkPresentTimeGOOGLE## a _) `compare` x@(VkPresentTimeGOOGLE## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -720,18 +681,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkPresentTimeGOOGLE where
-        unsafeAddr (VkPresentTimeGOOGLE## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPresentTimeGOOGLE## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPresentTimeGOOGLE## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkPresentTimeGOOGLE where
         type StructFields VkPresentTimeGOOGLE =
              '["presentID", "desiredPresentTime"] -- ' closing tick for hsc2hs
@@ -820,18 +769,18 @@
 --   > } VkPresentTimesInfoGOOGLE;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPresentTimesInfoGOOGLE VkPresentTimesInfoGOOGLE registry at www.khronos.org>
-data VkPresentTimesInfoGOOGLE = VkPresentTimesInfoGOOGLE## Addr##
-                                                          ByteArray##
+type VkPresentTimesInfoGOOGLE =
+     VulkanStruct VkPresentTimesInfoGOOGLE' -- ' closing tick for hsc2hs
 
+data VkPresentTimesInfoGOOGLE' -- ' closing tick for hsc2hs
+
 instance Eq VkPresentTimesInfoGOOGLE where
-        (VkPresentTimesInfoGOOGLE## a _) ==
-          x@(VkPresentTimesInfoGOOGLE## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPresentTimesInfoGOOGLE where
-        (VkPresentTimesInfoGOOGLE## a _) `compare`
-          x@(VkPresentTimesInfoGOOGLE## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -848,19 +797,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPresentTimesInfoGOOGLE where
-        unsafeAddr (VkPresentTimesInfoGOOGLE## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPresentTimesInfoGOOGLE## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPresentTimesInfoGOOGLE## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkPresentTimesInfoGOOGLE where
         type StructFields VkPresentTimesInfoGOOGLE =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/ProtectedSubmitInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/ProtectedSubmitInfo.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/ProtectedSubmitInfo.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/ProtectedSubmitInfo.hsc
@@ -8,17 +8,14 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.ProtectedSubmitInfo
-       (VkProtectedSubmitInfo(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes          (VkBool32)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.SubmitInfo  (VkSubmitInfo)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkProtectedSubmitInfo, VkProtectedSubmitInfo') where -- ' closing tick for hsc2hs
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes          (VkBool32)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Struct.SubmitInfo  (VkSubmitInfo)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkProtectedSubmitInfo {
 --   >     VkStructureType sType;
@@ -27,18 +24,17 @@
 --   > } VkProtectedSubmitInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkProtectedSubmitInfo VkProtectedSubmitInfo registry at www.khronos.org>
-data VkProtectedSubmitInfo = VkProtectedSubmitInfo## Addr##
-                                                    ByteArray##
+type VkProtectedSubmitInfo = VulkanStruct VkProtectedSubmitInfo' -- ' closing tick for hsc2hs
 
+data VkProtectedSubmitInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkProtectedSubmitInfo where
-        (VkProtectedSubmitInfo## a _) == x@(VkProtectedSubmitInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkProtectedSubmitInfo where
-        (VkProtectedSubmitInfo## a _) `compare`
-          x@(VkProtectedSubmitInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -55,18 +51,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkProtectedSubmitInfo where
-        unsafeAddr (VkProtectedSubmitInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkProtectedSubmitInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkProtectedSubmitInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkProtectedSubmitInfo where
         type StructFields VkProtectedSubmitInfo =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PushConstantRange.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PushConstantRange.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/PushConstantRange.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PushConstantRange.hsc
@@ -8,15 +8,12 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.PushConstantRange
-       (VkPushConstantRange(..)) where
-import           Foreign.Storable                  (Storable (..))
-import           GHC.Base                          (Addr##, ByteArray##,
-                                                    byteArrayContents##,
-                                                    plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.Shader (VkShaderStageFlags)
-import           System.IO.Unsafe                  (unsafeDupablePerformIO)
+       (VkPushConstantRange, VkPushConstantRange') where -- ' closing tick for hsc2hs
+import Foreign.Storable                  (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.Shader (VkShaderStageFlags)
+import System.IO.Unsafe                  (unsafeDupablePerformIO)
 
 -- | > typedef struct VkPushConstantRange {
 --   >     VkShaderStageFlags     stageFlags;
@@ -25,17 +22,17 @@
 --   > } VkPushConstantRange;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPushConstantRange VkPushConstantRange registry at www.khronos.org>
-data VkPushConstantRange = VkPushConstantRange## Addr## ByteArray##
+type VkPushConstantRange = VulkanStruct VkPushConstantRange' -- ' closing tick for hsc2hs
 
+data VkPushConstantRange' -- ' closing tick for hsc2hs
+
 instance Eq VkPushConstantRange where
-        (VkPushConstantRange## a _) == x@(VkPushConstantRange## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkPushConstantRange where
-        (VkPushConstantRange## a _) `compare` x@(VkPushConstantRange## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -52,18 +49,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPushConstantRange where
-        unsafeAddr (VkPushConstantRange## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPushConstantRange## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPushConstantRange## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkPushConstantRange where
         type StructFields VkPushConstantRange =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/QueryPoolCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/QueryPoolCreateInfo.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/QueryPoolCreateInfo.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/QueryPoolCreateInfo.hsc
@@ -8,18 +8,15 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.QueryPoolCreateInfo
-       (VkQueryPoolCreateInfo(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks           (VkQueryPoolCreateFlags)
-import           Graphics.Vulkan.Types.Enum.Query         (VkQueryPipelineStatisticFlags,
-                                                           VkQueryType)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkQueryPoolCreateInfo, VkQueryPoolCreateInfo') where -- ' closing tick for hsc2hs
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Bitmasks           (VkQueryPoolCreateFlags)
+import Graphics.Vulkan.Types.Enum.Query         (VkQueryPipelineStatisticFlags,
+                                                 VkQueryType)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkQueryPoolCreateInfo {
 --   >     VkStructureType sType;
@@ -31,18 +28,17 @@
 --   > } VkQueryPoolCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkQueryPoolCreateInfo VkQueryPoolCreateInfo registry at www.khronos.org>
-data VkQueryPoolCreateInfo = VkQueryPoolCreateInfo## Addr##
-                                                    ByteArray##
+type VkQueryPoolCreateInfo = VulkanStruct VkQueryPoolCreateInfo' -- ' closing tick for hsc2hs
 
+data VkQueryPoolCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkQueryPoolCreateInfo where
-        (VkQueryPoolCreateInfo## a _) == x@(VkQueryPoolCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkQueryPoolCreateInfo where
-        (VkQueryPoolCreateInfo## a _) `compare`
-          x@(VkQueryPoolCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -59,18 +55,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkQueryPoolCreateInfo where
-        unsafeAddr (VkQueryPoolCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkQueryPoolCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkQueryPoolCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkQueryPoolCreateInfo where
         type StructFields VkQueryPoolCreateInfo =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/QueueFamilyProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/QueueFamilyProperties.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/QueueFamilyProperties.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/QueueFamilyProperties.hsc
@@ -8,19 +8,17 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.QueueFamilyProperties
-       (VkQueueFamilyProperties(..), VkQueueFamilyProperties2(..),
+       (VkQueueFamilyProperties, VkQueueFamilyProperties', -- ' closing tick for hsc2hs
+        VkQueueFamilyProperties2, VkQueueFamilyProperties2', -- ' closing tick for hsc2hs
         VkQueueFamilyProperties2KHR)
        where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.Queue         (VkQueueFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.Extent      (VkExtent3D)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.Queue         (VkQueueFlags)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Struct.Extent      (VkExtent3D)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkQueueFamilyProperties {
 --   >     VkQueueFlags           queueFlags;
@@ -30,18 +28,18 @@
 --   > } VkQueueFamilyProperties;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkQueueFamilyProperties VkQueueFamilyProperties registry at www.khronos.org>
-data VkQueueFamilyProperties = VkQueueFamilyProperties## Addr##
-                                                        ByteArray##
+type VkQueueFamilyProperties =
+     VulkanStruct VkQueueFamilyProperties' -- ' closing tick for hsc2hs
 
+data VkQueueFamilyProperties' -- ' closing tick for hsc2hs
+
 instance Eq VkQueueFamilyProperties where
-        (VkQueueFamilyProperties## a _) == x@(VkQueueFamilyProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkQueueFamilyProperties where
-        (VkQueueFamilyProperties## a _) `compare`
-          x@(VkQueueFamilyProperties## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -59,18 +57,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkQueueFamilyProperties where
-        unsafeAddr (VkQueueFamilyProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkQueueFamilyProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkQueueFamilyProperties## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkQueueFamilyProperties where
         type StructFields VkQueueFamilyProperties =
              '["queueFlags", "queueCount", "timestampValidBits", -- ' closing tick for hsc2hs
@@ -244,18 +230,18 @@
 --   > } VkQueueFamilyProperties2;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkQueueFamilyProperties2 VkQueueFamilyProperties2 registry at www.khronos.org>
-data VkQueueFamilyProperties2 = VkQueueFamilyProperties2## Addr##
-                                                          ByteArray##
+type VkQueueFamilyProperties2 =
+     VulkanStruct VkQueueFamilyProperties2' -- ' closing tick for hsc2hs
 
+data VkQueueFamilyProperties2' -- ' closing tick for hsc2hs
+
 instance Eq VkQueueFamilyProperties2 where
-        (VkQueueFamilyProperties2## a _) ==
-          x@(VkQueueFamilyProperties2## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkQueueFamilyProperties2 where
-        (VkQueueFamilyProperties2## a _) `compare`
-          x@(VkQueueFamilyProperties2## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -272,19 +258,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkQueueFamilyProperties2 where
-        unsafeAddr (VkQueueFamilyProperties2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkQueueFamilyProperties2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkQueueFamilyProperties2## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkQueueFamilyProperties2 where
         type StructFields VkQueueFamilyProperties2 =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Rect.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Rect.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Rect.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Rect.hsc
@@ -8,16 +8,13 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Rect
-       (VkRect2D(..), VkRectLayerKHR(..)) where
-import           Foreign.Storable                    (Storable (..))
-import           GHC.Base                            (Addr##, ByteArray##,
-                                                      byteArrayContents##,
-                                                      plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Struct.Extent (VkExtent2D)
-import           Graphics.Vulkan.Types.Struct.Offset (VkOffset2D)
-import           System.IO.Unsafe                    (unsafeDupablePerformIO)
+       (VkRect2D, VkRect2D', VkRectLayerKHR, VkRectLayerKHR') where
+import Foreign.Storable                    (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Struct.Extent (VkExtent2D)
+import Graphics.Vulkan.Types.Struct.Offset (VkOffset2D)
+import System.IO.Unsafe                    (unsafeDupablePerformIO)
 
 -- | > typedef struct VkRect2D {
 --   >     VkOffset2D     offset;
@@ -25,17 +22,17 @@
 --   > } VkRect2D;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRect2D VkRect2D registry at www.khronos.org>
-data VkRect2D = VkRect2D## Addr## ByteArray##
+type VkRect2D = VulkanStruct VkRect2D' -- ' closing tick for hsc2hs
 
+data VkRect2D' -- ' closing tick for hsc2hs
+
 instance Eq VkRect2D where
-        (VkRect2D## a _) == x@(VkRect2D## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkRect2D where
-        (VkRect2D## a _) `compare` x@(VkRect2D## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -53,18 +50,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkRect2D where
-        unsafeAddr (VkRect2D## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkRect2D## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkRect2D## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkRect2D where
         type StructFields VkRect2D = '["offset", "extent"] -- ' closing tick for hsc2hs
         type CUnionType VkRect2D = 'False -- ' closing tick for hsc2hs
@@ -139,17 +124,17 @@
 --   > } VkRectLayerKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRectLayerKHR VkRectLayerKHR registry at www.khronos.org>
-data VkRectLayerKHR = VkRectLayerKHR## Addr## ByteArray##
+type VkRectLayerKHR = VulkanStruct VkRectLayerKHR' -- ' closing tick for hsc2hs
 
+data VkRectLayerKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkRectLayerKHR where
-        (VkRectLayerKHR## a _) == x@(VkRectLayerKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkRectLayerKHR where
-        (VkRectLayerKHR## a _) `compare` x@(VkRectLayerKHR## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -166,18 +151,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkRectLayerKHR where
-        unsafeAddr (VkRectLayerKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkRectLayerKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkRectLayerKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkRectLayerKHR where
         type StructFields VkRectLayerKHR = '["offset", "extent", "layer"] -- ' closing tick for hsc2hs
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/RefreshCycleDurationGOOGLE.hsc b/src-gen/Graphics/Vulkan/Types/Struct/RefreshCycleDurationGOOGLE.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/RefreshCycleDurationGOOGLE.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/RefreshCycleDurationGOOGLE.hsc
@@ -8,33 +8,29 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.RefreshCycleDurationGOOGLE
-       (VkRefreshCycleDurationGOOGLE(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Base                         (Addr##, ByteArray##,
-                                                   byteArrayContents##,
-                                                   plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+       (VkRefreshCycleDurationGOOGLE, VkRefreshCycleDurationGOOGLE') where -- ' closing tick for hsc2hs
+import Foreign.Storable                 (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import System.IO.Unsafe                 (unsafeDupablePerformIO)
 
 -- | > typedef struct VkRefreshCycleDurationGOOGLE {
 --   >     uint64_t                         refreshDuration;
 --   > } VkRefreshCycleDurationGOOGLE;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRefreshCycleDurationGOOGLE VkRefreshCycleDurationGOOGLE registry at www.khronos.org>
-data VkRefreshCycleDurationGOOGLE = VkRefreshCycleDurationGOOGLE## Addr##
-                                                                  ByteArray##
+type VkRefreshCycleDurationGOOGLE =
+     VulkanStruct VkRefreshCycleDurationGOOGLE' -- ' closing tick for hsc2hs
 
+data VkRefreshCycleDurationGOOGLE' -- ' closing tick for hsc2hs
+
 instance Eq VkRefreshCycleDurationGOOGLE where
-        (VkRefreshCycleDurationGOOGLE## a _) ==
-          x@(VkRefreshCycleDurationGOOGLE## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkRefreshCycleDurationGOOGLE where
-        (VkRefreshCycleDurationGOOGLE## a _) `compare`
-          x@(VkRefreshCycleDurationGOOGLE## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -52,20 +48,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkRefreshCycleDurationGOOGLE where
-        unsafeAddr (VkRefreshCycleDurationGOOGLE## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkRefreshCycleDurationGOOGLE## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkRefreshCycleDurationGOOGLE##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkRefreshCycleDurationGOOGLE where
         type StructFields VkRefreshCycleDurationGOOGLE =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc b/src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc
@@ -8,33 +8,32 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.RenderPass
-       (VkRenderPassBeginInfo(..), VkRenderPassCreateInfo(..),
-        VkRenderPassInputAttachmentAspectCreateInfo(..),
+       (VkRenderPassBeginInfo, VkRenderPassBeginInfo', -- ' closing tick for hsc2hs
+        VkRenderPassCreateInfo, VkRenderPassCreateInfo', -- ' closing tick for hsc2hs
+        VkRenderPassInputAttachmentAspectCreateInfo,
+        VkRenderPassInputAttachmentAspectCreateInfo', -- ' closing tick for hsc2hs
         VkRenderPassInputAttachmentAspectCreateInfoKHR,
-        VkRenderPassMultiviewCreateInfo(..),
+        VkRenderPassMultiviewCreateInfo, VkRenderPassMultiviewCreateInfo', -- ' closing tick for hsc2hs
         VkRenderPassMultiviewCreateInfoKHR,
-        VkRenderPassSampleLocationsBeginInfoEXT(..))
+        VkRenderPassSampleLocationsBeginInfoEXT,
+        VkRenderPassSampleLocationsBeginInfoEXT') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                                            (Storable (..))
-import           GHC.Base                                                    (Addr##,
-                                                                              ByteArray##,
-                                                                              byteArrayContents##,
-                                                                              plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks                              (VkRenderPassCreateFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType                    (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                               (VkFramebuffer,
-                                                                              VkRenderPass)
-import           Graphics.Vulkan.Types.Struct.Attachment                     (VkAttachmentDescription,
-                                                                              VkAttachmentSampleLocationsEXT)
-import           Graphics.Vulkan.Types.Struct.Clear                          (VkClearValue)
-import           Graphics.Vulkan.Types.Struct.InputAttachmentAspectReference (VkInputAttachmentAspectReference)
-import           Graphics.Vulkan.Types.Struct.Rect                           (VkRect2D)
-import           Graphics.Vulkan.Types.Struct.Subpass                        (VkSubpassDependency,
-                                                                              VkSubpassDescription,
-                                                                              VkSubpassSampleLocationsEXT)
-import           System.IO.Unsafe                                            (unsafeDupablePerformIO)
+import Foreign.Storable                                            (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Bitmasks                              (VkRenderPassCreateFlags)
+import Graphics.Vulkan.Types.Enum.StructureType                    (VkStructureType)
+import Graphics.Vulkan.Types.Handles                               (VkFramebuffer,
+                                                                    VkRenderPass)
+import Graphics.Vulkan.Types.Struct.Attachment                     (VkAttachmentDescription,
+                                                                    VkAttachmentSampleLocationsEXT)
+import Graphics.Vulkan.Types.Struct.Clear                          (VkClearValue)
+import Graphics.Vulkan.Types.Struct.InputAttachmentAspectReference (VkInputAttachmentAspectReference)
+import Graphics.Vulkan.Types.Struct.Rect                           (VkRect2D)
+import Graphics.Vulkan.Types.Struct.Subpass                        (VkSubpassDependency,
+                                                                    VkSubpassDescription,
+                                                                    VkSubpassSampleLocationsEXT)
+import System.IO.Unsafe                                            (unsafeDupablePerformIO)
 
 -- | > typedef struct VkRenderPassBeginInfo {
 --   >     VkStructureType sType;
@@ -47,18 +46,17 @@
 --   > } VkRenderPassBeginInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRenderPassBeginInfo VkRenderPassBeginInfo registry at www.khronos.org>
-data VkRenderPassBeginInfo = VkRenderPassBeginInfo## Addr##
-                                                    ByteArray##
+type VkRenderPassBeginInfo = VulkanStruct VkRenderPassBeginInfo' -- ' closing tick for hsc2hs
 
+data VkRenderPassBeginInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkRenderPassBeginInfo where
-        (VkRenderPassBeginInfo## a _) == x@(VkRenderPassBeginInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkRenderPassBeginInfo where
-        (VkRenderPassBeginInfo## a _) `compare`
-          x@(VkRenderPassBeginInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -76,18 +74,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkRenderPassBeginInfo where
-        unsafeAddr (VkRenderPassBeginInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkRenderPassBeginInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkRenderPassBeginInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkRenderPassBeginInfo where
         type StructFields VkRenderPassBeginInfo =
              '["sType", "pNext", "renderPass", "framebuffer", "renderArea", -- ' closing tick for hsc2hs
@@ -357,18 +343,17 @@
 --   > } VkRenderPassCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRenderPassCreateInfo VkRenderPassCreateInfo registry at www.khronos.org>
-data VkRenderPassCreateInfo = VkRenderPassCreateInfo## Addr##
-                                                      ByteArray##
+type VkRenderPassCreateInfo = VulkanStruct VkRenderPassCreateInfo' -- ' closing tick for hsc2hs
 
+data VkRenderPassCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkRenderPassCreateInfo where
-        (VkRenderPassCreateInfo## a _) == x@(VkRenderPassCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkRenderPassCreateInfo where
-        (VkRenderPassCreateInfo## a _) `compare`
-          x@(VkRenderPassCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -386,18 +371,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkRenderPassCreateInfo where
-        unsafeAddr (VkRenderPassCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkRenderPassCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkRenderPassCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkRenderPassCreateInfo where
         type StructFields VkRenderPassCreateInfo =
              '["sType", "pNext", "flags", "attachmentCount", "pAttachments", -- ' closing tick for hsc2hs
@@ -737,20 +710,18 @@
 --   > } VkRenderPassInputAttachmentAspectCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfo registry at www.khronos.org>
-data VkRenderPassInputAttachmentAspectCreateInfo = VkRenderPassInputAttachmentAspectCreateInfo## Addr##
-                                                                                                ByteArray##
+type VkRenderPassInputAttachmentAspectCreateInfo =
+     VulkanStruct VkRenderPassInputAttachmentAspectCreateInfo' -- ' closing tick for hsc2hs
 
+data VkRenderPassInputAttachmentAspectCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkRenderPassInputAttachmentAspectCreateInfo where
-        (VkRenderPassInputAttachmentAspectCreateInfo## a _) ==
-          x@(VkRenderPassInputAttachmentAspectCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkRenderPassInputAttachmentAspectCreateInfo where
-        (VkRenderPassInputAttachmentAspectCreateInfo## a _) `compare`
-          x@(VkRenderPassInputAttachmentAspectCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -770,23 +741,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim
-           VkRenderPassInputAttachmentAspectCreateInfo
-         where
-        unsafeAddr (VkRenderPassInputAttachmentAspectCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkRenderPassInputAttachmentAspectCreateInfo## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkRenderPassInputAttachmentAspectCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkRenderPassInputAttachmentAspectCreateInfo
          where
         type StructFields VkRenderPassInputAttachmentAspectCreateInfo =
@@ -1003,19 +957,18 @@
 --   > } VkRenderPassMultiviewCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfo registry at www.khronos.org>
-data VkRenderPassMultiviewCreateInfo = VkRenderPassMultiviewCreateInfo## Addr##
-                                                                        ByteArray##
+type VkRenderPassMultiviewCreateInfo =
+     VulkanStruct VkRenderPassMultiviewCreateInfo' -- ' closing tick for hsc2hs
 
+data VkRenderPassMultiviewCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkRenderPassMultiviewCreateInfo where
-        (VkRenderPassMultiviewCreateInfo## a _) ==
-          x@(VkRenderPassMultiviewCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkRenderPassMultiviewCreateInfo where
-        (VkRenderPassMultiviewCreateInfo## a _) `compare`
-          x@(VkRenderPassMultiviewCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1034,20 +987,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkRenderPassMultiviewCreateInfo where
-        unsafeAddr (VkRenderPassMultiviewCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkRenderPassMultiviewCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkRenderPassMultiviewCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkRenderPassMultiviewCreateInfo where
         type StructFields VkRenderPassMultiviewCreateInfo =
              '["sType", "pNext", "subpassCount", "pViewMasks", -- ' closing tick for hsc2hs
@@ -1396,20 +1335,18 @@
 --   > } VkRenderPassSampleLocationsBeginInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRenderPassSampleLocationsBeginInfoEXT VkRenderPassSampleLocationsBeginInfoEXT registry at www.khronos.org>
-data VkRenderPassSampleLocationsBeginInfoEXT = VkRenderPassSampleLocationsBeginInfoEXT## Addr##
-                                                                                        ByteArray##
+type VkRenderPassSampleLocationsBeginInfoEXT =
+     VulkanStruct VkRenderPassSampleLocationsBeginInfoEXT' -- ' closing tick for hsc2hs
 
+data VkRenderPassSampleLocationsBeginInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkRenderPassSampleLocationsBeginInfoEXT where
-        (VkRenderPassSampleLocationsBeginInfoEXT## a _) ==
-          x@(VkRenderPassSampleLocationsBeginInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkRenderPassSampleLocationsBeginInfoEXT where
-        (VkRenderPassSampleLocationsBeginInfoEXT## a _) `compare`
-          x@(VkRenderPassSampleLocationsBeginInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1428,21 +1365,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkRenderPassSampleLocationsBeginInfoEXT
-         where
-        unsafeAddr (VkRenderPassSampleLocationsBeginInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkRenderPassSampleLocationsBeginInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkRenderPassSampleLocationsBeginInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkRenderPassSampleLocationsBeginInfoEXT
          where
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc b/src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc
@@ -8,18 +8,17 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.SampleLocation
-       (VkSampleLocationEXT(..), VkSampleLocationsInfoEXT(..)) where
-import           Foreign.Storable                            (Storable (..))
-import           GHC.Base                                    (Addr##, ByteArray##,
-                                                              byteArrayContents##,
-                                                              plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.SampleCountFlags (VkSampleCountFlagBits)
-import           Graphics.Vulkan.Types.Enum.StructureType    (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.Extent         (VkExtent2D)
-import           Graphics.Vulkan.Types.Struct.Image          (VkImageMemoryBarrier)
-import           System.IO.Unsafe                            (unsafeDupablePerformIO)
+       (VkSampleLocationEXT, VkSampleLocationEXT', -- ' closing tick for hsc2hs
+        VkSampleLocationsInfoEXT, VkSampleLocationsInfoEXT') -- ' closing tick for hsc2hs
+       where
+import Foreign.Storable                            (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.SampleCountFlags (VkSampleCountFlagBits)
+import Graphics.Vulkan.Types.Enum.StructureType    (VkStructureType)
+import Graphics.Vulkan.Types.Struct.Extent         (VkExtent2D)
+import Graphics.Vulkan.Types.Struct.Image          (VkImageMemoryBarrier)
+import System.IO.Unsafe                            (unsafeDupablePerformIO)
 
 -- | > typedef struct VkSampleLocationEXT {
 --   >     float                            x;
@@ -27,17 +26,17 @@
 --   > } VkSampleLocationEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSampleLocationEXT VkSampleLocationEXT registry at www.khronos.org>
-data VkSampleLocationEXT = VkSampleLocationEXT## Addr## ByteArray##
+type VkSampleLocationEXT = VulkanStruct VkSampleLocationEXT' -- ' closing tick for hsc2hs
 
+data VkSampleLocationEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkSampleLocationEXT where
-        (VkSampleLocationEXT## a _) == x@(VkSampleLocationEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSampleLocationEXT where
-        (VkSampleLocationEXT## a _) `compare` x@(VkSampleLocationEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -55,18 +54,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSampleLocationEXT where
-        unsafeAddr (VkSampleLocationEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSampleLocationEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSampleLocationEXT## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSampleLocationEXT where
         type StructFields VkSampleLocationEXT = '["x", "y"] -- ' closing tick for hsc2hs
         type CUnionType VkSampleLocationEXT = 'False -- ' closing tick for hsc2hs
@@ -151,18 +138,18 @@
 --   > } VkSampleLocationsInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSampleLocationsInfoEXT VkSampleLocationsInfoEXT registry at www.khronos.org>
-data VkSampleLocationsInfoEXT = VkSampleLocationsInfoEXT## Addr##
-                                                          ByteArray##
+type VkSampleLocationsInfoEXT =
+     VulkanStruct VkSampleLocationsInfoEXT' -- ' closing tick for hsc2hs
 
+data VkSampleLocationsInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkSampleLocationsInfoEXT where
-        (VkSampleLocationsInfoEXT## a _) ==
-          x@(VkSampleLocationsInfoEXT## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSampleLocationsInfoEXT where
-        (VkSampleLocationsInfoEXT## a _) `compare`
-          x@(VkSampleLocationsInfoEXT## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -179,19 +166,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSampleLocationsInfoEXT where
-        unsafeAddr (VkSampleLocationsInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSampleLocationsInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSampleLocationsInfoEXT## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkSampleLocationsInfoEXT where
         type StructFields VkSampleLocationsInfoEXT =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Sampler.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Sampler.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Sampler.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Sampler.hsc
@@ -8,38 +8,39 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Sampler
-       (VkSamplerCreateInfo(..), VkSamplerReductionModeCreateInfoEXT(..),
-        VkSamplerYcbcrConversionCreateInfo(..),
+       (VkSamplerCreateInfo, VkSamplerCreateInfo', -- ' closing tick for hsc2hs
+        VkSamplerReductionModeCreateInfoEXT,
+        VkSamplerReductionModeCreateInfoEXT', -- ' closing tick for hsc2hs
+        VkSamplerYcbcrConversionCreateInfo,
+        VkSamplerYcbcrConversionCreateInfo', -- ' closing tick for hsc2hs
         VkSamplerYcbcrConversionCreateInfoKHR,
-        VkSamplerYcbcrConversionImageFormatProperties(..),
+        VkSamplerYcbcrConversionImageFormatProperties,
+        VkSamplerYcbcrConversionImageFormatProperties', -- ' closing tick for hsc2hs
         VkSamplerYcbcrConversionImageFormatPropertiesKHR,
-        VkSamplerYcbcrConversionInfo(..), VkSamplerYcbcrConversionInfoKHR)
+        VkSamplerYcbcrConversionInfo, VkSamplerYcbcrConversionInfo', -- ' closing tick for hsc2hs
+        VkSamplerYcbcrConversionInfoKHR)
        where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Base                                      (Addr##,
-                                                                ByteArray##,
-                                                                byteArrayContents##,
-                                                                plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes               (VkBool32)
-import           Graphics.Vulkan.Types.Bitmasks                (VkSamplerCreateFlags)
-import           Graphics.Vulkan.Types.Enum.BorderColor        (VkBorderColor)
-import           Graphics.Vulkan.Types.Enum.ChromaLocation     (VkChromaLocation)
-import           Graphics.Vulkan.Types.Enum.CompareOp          (VkCompareOp)
-import           Graphics.Vulkan.Types.Enum.Filter             (VkFilter)
-import           Graphics.Vulkan.Types.Enum.Format             (VkFormat)
-import           Graphics.Vulkan.Types.Enum.Sampler            (VkSamplerAddressMode,
-                                                                VkSamplerMipmapMode,
-                                                                VkSamplerReductionModeEXT,
-                                                                VkSamplerYcbcrModelConversion,
-                                                                VkSamplerYcbcrRange)
-import           Graphics.Vulkan.Types.Enum.StructureType      (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                 (VkSamplerYcbcrConversion)
-import           Graphics.Vulkan.Types.Struct.ComponentMapping (VkComponentMapping)
-import           Graphics.Vulkan.Types.Struct.Image            (VkImageFormatProperties2,
-                                                                VkImageViewCreateInfo)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
+import Foreign.Storable                              (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes               (VkBool32)
+import Graphics.Vulkan.Types.Bitmasks                (VkSamplerCreateFlags)
+import Graphics.Vulkan.Types.Enum.BorderColor        (VkBorderColor)
+import Graphics.Vulkan.Types.Enum.ChromaLocation     (VkChromaLocation)
+import Graphics.Vulkan.Types.Enum.CompareOp          (VkCompareOp)
+import Graphics.Vulkan.Types.Enum.Filter             (VkFilter)
+import Graphics.Vulkan.Types.Enum.Format             (VkFormat)
+import Graphics.Vulkan.Types.Enum.Sampler            (VkSamplerAddressMode,
+                                                      VkSamplerMipmapMode,
+                                                      VkSamplerReductionModeEXT,
+                                                      VkSamplerYcbcrModelConversion,
+                                                      VkSamplerYcbcrRange)
+import Graphics.Vulkan.Types.Enum.StructureType      (VkStructureType)
+import Graphics.Vulkan.Types.Handles                 (VkSamplerYcbcrConversion)
+import Graphics.Vulkan.Types.Struct.ComponentMapping (VkComponentMapping)
+import Graphics.Vulkan.Types.Struct.Image            (VkImageFormatProperties2,
+                                                      VkImageViewCreateInfo)
+import System.IO.Unsafe                              (unsafeDupablePerformIO)
 
 -- | > typedef struct VkSamplerCreateInfo {
 --   >     VkStructureType sType;
@@ -63,17 +64,17 @@
 --   > } VkSamplerCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSamplerCreateInfo VkSamplerCreateInfo registry at www.khronos.org>
-data VkSamplerCreateInfo = VkSamplerCreateInfo## Addr## ByteArray##
+type VkSamplerCreateInfo = VulkanStruct VkSamplerCreateInfo' -- ' closing tick for hsc2hs
 
+data VkSamplerCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkSamplerCreateInfo where
-        (VkSamplerCreateInfo## a _) == x@(VkSamplerCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSamplerCreateInfo where
-        (VkSamplerCreateInfo## a _) `compare` x@(VkSamplerCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -91,18 +92,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSamplerCreateInfo where
-        unsafeAddr (VkSamplerCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSamplerCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSamplerCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSamplerCreateInfo where
         type StructFields VkSamplerCreateInfo =
              '["sType", "pNext", "flags", "magFilter", "minFilter", -- ' closing tick for hsc2hs
@@ -825,20 +814,18 @@
 --   > } VkSamplerReductionModeCreateInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSamplerReductionModeCreateInfoEXT VkSamplerReductionModeCreateInfoEXT registry at www.khronos.org>
-data VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfoEXT## Addr##
-                                                                                ByteArray##
+type VkSamplerReductionModeCreateInfoEXT =
+     VulkanStruct VkSamplerReductionModeCreateInfoEXT' -- ' closing tick for hsc2hs
 
+data VkSamplerReductionModeCreateInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkSamplerReductionModeCreateInfoEXT where
-        (VkSamplerReductionModeCreateInfoEXT## a _) ==
-          x@(VkSamplerReductionModeCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSamplerReductionModeCreateInfoEXT where
-        (VkSamplerReductionModeCreateInfoEXT## a _) `compare`
-          x@(VkSamplerReductionModeCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -857,21 +844,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSamplerReductionModeCreateInfoEXT
-         where
-        unsafeAddr (VkSamplerReductionModeCreateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSamplerReductionModeCreateInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSamplerReductionModeCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSamplerReductionModeCreateInfoEXT where
         type StructFields VkSamplerReductionModeCreateInfoEXT =
              '["sType", "pNext", "reductionMode"] -- ' closing tick for hsc2hs
@@ -1017,20 +989,18 @@
 --   > } VkSamplerYcbcrConversionCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfo registry at www.khronos.org>
-data VkSamplerYcbcrConversionCreateInfo = VkSamplerYcbcrConversionCreateInfo## Addr##
-                                                                              ByteArray##
+type VkSamplerYcbcrConversionCreateInfo =
+     VulkanStruct VkSamplerYcbcrConversionCreateInfo' -- ' closing tick for hsc2hs
 
+data VkSamplerYcbcrConversionCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkSamplerYcbcrConversionCreateInfo where
-        (VkSamplerYcbcrConversionCreateInfo## a _) ==
-          x@(VkSamplerYcbcrConversionCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSamplerYcbcrConversionCreateInfo where
-        (VkSamplerYcbcrConversionCreateInfo## a _) `compare`
-          x@(VkSamplerYcbcrConversionCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1049,20 +1019,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSamplerYcbcrConversionCreateInfo where
-        unsafeAddr (VkSamplerYcbcrConversionCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSamplerYcbcrConversionCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSamplerYcbcrConversionCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSamplerYcbcrConversionCreateInfo where
         type StructFields VkSamplerYcbcrConversionCreateInfo =
              '["sType", "pNext", "format", "ycbcrModel", "ycbcrRange", -- ' closing tick for hsc2hs
@@ -1500,20 +1456,18 @@
 --   > } VkSamplerYcbcrConversionImageFormatProperties;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatProperties registry at www.khronos.org>
-data VkSamplerYcbcrConversionImageFormatProperties = VkSamplerYcbcrConversionImageFormatProperties## Addr##
-                                                                                                    ByteArray##
+type VkSamplerYcbcrConversionImageFormatProperties =
+     VulkanStruct VkSamplerYcbcrConversionImageFormatProperties' -- ' closing tick for hsc2hs
 
+data VkSamplerYcbcrConversionImageFormatProperties' -- ' closing tick for hsc2hs
+
 instance Eq VkSamplerYcbcrConversionImageFormatProperties where
-        (VkSamplerYcbcrConversionImageFormatProperties## a _) ==
-          x@(VkSamplerYcbcrConversionImageFormatProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSamplerYcbcrConversionImageFormatProperties where
-        (VkSamplerYcbcrConversionImageFormatProperties## a _) `compare`
-          x@(VkSamplerYcbcrConversionImageFormatProperties## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1534,23 +1488,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim
-           VkSamplerYcbcrConversionImageFormatProperties
-         where
-        unsafeAddr (VkSamplerYcbcrConversionImageFormatProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkSamplerYcbcrConversionImageFormatProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSamplerYcbcrConversionImageFormatProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal
            VkSamplerYcbcrConversionImageFormatProperties
          where
@@ -1719,19 +1656,18 @@
 --   > } VkSamplerYcbcrConversionInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfo registry at www.khronos.org>
-data VkSamplerYcbcrConversionInfo = VkSamplerYcbcrConversionInfo## Addr##
-                                                                  ByteArray##
+type VkSamplerYcbcrConversionInfo =
+     VulkanStruct VkSamplerYcbcrConversionInfo' -- ' closing tick for hsc2hs
 
+data VkSamplerYcbcrConversionInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkSamplerYcbcrConversionInfo where
-        (VkSamplerYcbcrConversionInfo## a _) ==
-          x@(VkSamplerYcbcrConversionInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSamplerYcbcrConversionInfo where
-        (VkSamplerYcbcrConversionInfo## a _) `compare`
-          x@(VkSamplerYcbcrConversionInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1749,20 +1685,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSamplerYcbcrConversionInfo where
-        unsafeAddr (VkSamplerYcbcrConversionInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSamplerYcbcrConversionInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSamplerYcbcrConversionInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkSamplerYcbcrConversionInfo where
         type StructFields VkSamplerYcbcrConversionInfo =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Semaphore.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Semaphore.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Semaphore.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Semaphore.hsc
@@ -8,18 +8,17 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Semaphore
-       (VkSemaphoreCreateInfo(..), VkSemaphoreGetFdInfoKHR(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks           (VkSemaphoreCreateFlags)
-import           Graphics.Vulkan.Types.Enum.External      (VkExternalSemaphoreHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles            (VkSemaphore)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkSemaphoreCreateInfo, VkSemaphoreCreateInfo', -- ' closing tick for hsc2hs
+        VkSemaphoreGetFdInfoKHR, VkSemaphoreGetFdInfoKHR') -- ' closing tick for hsc2hs
+       where
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Bitmasks           (VkSemaphoreCreateFlags)
+import Graphics.Vulkan.Types.Enum.External      (VkExternalSemaphoreHandleTypeFlagBits)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Handles            (VkSemaphore)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkSemaphoreCreateInfo {
 --   >     VkStructureType sType;
@@ -28,18 +27,17 @@
 --   > } VkSemaphoreCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSemaphoreCreateInfo VkSemaphoreCreateInfo registry at www.khronos.org>
-data VkSemaphoreCreateInfo = VkSemaphoreCreateInfo## Addr##
-                                                    ByteArray##
+type VkSemaphoreCreateInfo = VulkanStruct VkSemaphoreCreateInfo' -- ' closing tick for hsc2hs
 
+data VkSemaphoreCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkSemaphoreCreateInfo where
-        (VkSemaphoreCreateInfo## a _) == x@(VkSemaphoreCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSemaphoreCreateInfo where
-        (VkSemaphoreCreateInfo## a _) `compare`
-          x@(VkSemaphoreCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -57,18 +55,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSemaphoreCreateInfo where
-        unsafeAddr (VkSemaphoreCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSemaphoreCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSemaphoreCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSemaphoreCreateInfo where
         type StructFields VkSemaphoreCreateInfo =
              '["sType", "pNext", "flags"] -- ' closing tick for hsc2hs
@@ -190,18 +176,18 @@
 --   > } VkSemaphoreGetFdInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSemaphoreGetFdInfoKHR VkSemaphoreGetFdInfoKHR registry at www.khronos.org>
-data VkSemaphoreGetFdInfoKHR = VkSemaphoreGetFdInfoKHR## Addr##
-                                                        ByteArray##
+type VkSemaphoreGetFdInfoKHR =
+     VulkanStruct VkSemaphoreGetFdInfoKHR' -- ' closing tick for hsc2hs
 
+data VkSemaphoreGetFdInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkSemaphoreGetFdInfoKHR where
-        (VkSemaphoreGetFdInfoKHR## a _) == x@(VkSemaphoreGetFdInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSemaphoreGetFdInfoKHR where
-        (VkSemaphoreGetFdInfoKHR## a _) `compare`
-          x@(VkSemaphoreGetFdInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -218,18 +204,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSemaphoreGetFdInfoKHR where
-        unsafeAddr (VkSemaphoreGetFdInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSemaphoreGetFdInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSemaphoreGetFdInfoKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkSemaphoreGetFdInfoKHR where
         type StructFields VkSemaphoreGetFdInfoKHR =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc
@@ -12,23 +12,20 @@
 {-# LANGUAGE TypeFamilies          #-}
 {-# LANGUAGE UndecidableInstances  #-}
 module Graphics.Vulkan.Types.Struct.Shader
-       (VkShaderModuleCreateInfo(..),
-        VkShaderModuleValidationCacheCreateInfoEXT(..),
-        VkShaderResourceUsageAMD(..), VkShaderStatisticsInfoAMD(..))
+       (VkShaderModuleCreateInfo, VkShaderModuleCreateInfo', -- ' closing tick for hsc2hs
+        VkShaderModuleValidationCacheCreateInfoEXT,
+        VkShaderModuleValidationCacheCreateInfoEXT', -- ' closing tick for hsc2hs
+        VkShaderResourceUsageAMD, VkShaderResourceUsageAMD', -- ' closing tick for hsc2hs
+        VkShaderStatisticsInfoAMD, VkShaderStatisticsInfoAMD') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           Proxy##,
-                                                           byteArrayContents##,
-                                                           plusAddr##, proxy##)
-import           GHC.TypeLits                             (KnownNat, natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks           (VkShaderModuleCreateFlags)
-import           Graphics.Vulkan.Types.Enum.Shader        (VkShaderStageFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles            (VkValidationCacheEXT)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Bitmasks           (VkShaderModuleCreateFlags)
+import Graphics.Vulkan.Types.Enum.Shader        (VkShaderStageFlags)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Handles            (VkValidationCacheEXT)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkShaderModuleCreateInfo {
 --   >     VkStructureType sType;
@@ -39,18 +36,18 @@
 --   > } VkShaderModuleCreateInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkShaderModuleCreateInfo VkShaderModuleCreateInfo registry at www.khronos.org>
-data VkShaderModuleCreateInfo = VkShaderModuleCreateInfo## Addr##
-                                                          ByteArray##
+type VkShaderModuleCreateInfo =
+     VulkanStruct VkShaderModuleCreateInfo' -- ' closing tick for hsc2hs
 
+data VkShaderModuleCreateInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkShaderModuleCreateInfo where
-        (VkShaderModuleCreateInfo## a _) ==
-          x@(VkShaderModuleCreateInfo## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkShaderModuleCreateInfo where
-        (VkShaderModuleCreateInfo## a _) `compare`
-          x@(VkShaderModuleCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -68,19 +65,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkShaderModuleCreateInfo where
-        unsafeAddr (VkShaderModuleCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkShaderModuleCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkShaderModuleCreateInfo## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkShaderModuleCreateInfo where
         type StructFields VkShaderModuleCreateInfo =
              '["sType", "pNext", "flags", "codeSize", "pCode"] -- ' closing tick for hsc2hs
@@ -270,20 +254,18 @@
 --   > } VkShaderModuleValidationCacheCreateInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkShaderModuleValidationCacheCreateInfoEXT VkShaderModuleValidationCacheCreateInfoEXT registry at www.khronos.org>
-data VkShaderModuleValidationCacheCreateInfoEXT = VkShaderModuleValidationCacheCreateInfoEXT## Addr##
-                                                                                              ByteArray##
+type VkShaderModuleValidationCacheCreateInfoEXT =
+     VulkanStruct VkShaderModuleValidationCacheCreateInfoEXT' -- ' closing tick for hsc2hs
 
+data VkShaderModuleValidationCacheCreateInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkShaderModuleValidationCacheCreateInfoEXT where
-        (VkShaderModuleValidationCacheCreateInfoEXT## a _) ==
-          x@(VkShaderModuleValidationCacheCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkShaderModuleValidationCacheCreateInfoEXT where
-        (VkShaderModuleValidationCacheCreateInfoEXT## a _) `compare`
-          x@(VkShaderModuleValidationCacheCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -303,23 +285,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim
-           VkShaderModuleValidationCacheCreateInfoEXT
-         where
-        unsafeAddr (VkShaderModuleValidationCacheCreateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkShaderModuleValidationCacheCreateInfoEXT## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkShaderModuleValidationCacheCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkShaderModuleValidationCacheCreateInfoEXT
          where
         type StructFields VkShaderModuleValidationCacheCreateInfoEXT =
@@ -477,18 +442,18 @@
 --   > } VkShaderResourceUsageAMD;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkShaderResourceUsageAMD VkShaderResourceUsageAMD registry at www.khronos.org>
-data VkShaderResourceUsageAMD = VkShaderResourceUsageAMD## Addr##
-                                                          ByteArray##
+type VkShaderResourceUsageAMD =
+     VulkanStruct VkShaderResourceUsageAMD' -- ' closing tick for hsc2hs
 
+data VkShaderResourceUsageAMD' -- ' closing tick for hsc2hs
+
 instance Eq VkShaderResourceUsageAMD where
-        (VkShaderResourceUsageAMD## a _) ==
-          x@(VkShaderResourceUsageAMD## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkShaderResourceUsageAMD where
-        (VkShaderResourceUsageAMD## a _) `compare`
-          x@(VkShaderResourceUsageAMD## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -506,19 +471,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkShaderResourceUsageAMD where
-        unsafeAddr (VkShaderResourceUsageAMD## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkShaderResourceUsageAMD## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkShaderResourceUsageAMD## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkShaderResourceUsageAMD where
         type StructFields VkShaderResourceUsageAMD =
              '["numUsedVgprs", "numUsedSgprs", "ldsSizePerLocalWorkGroup", -- ' closing tick for hsc2hs
@@ -736,18 +688,18 @@
 --   > } VkShaderStatisticsInfoAMD;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkShaderStatisticsInfoAMD VkShaderStatisticsInfoAMD registry at www.khronos.org>
-data VkShaderStatisticsInfoAMD = VkShaderStatisticsInfoAMD## Addr##
-                                                            ByteArray##
+type VkShaderStatisticsInfoAMD =
+     VulkanStruct VkShaderStatisticsInfoAMD' -- ' closing tick for hsc2hs
 
+data VkShaderStatisticsInfoAMD' -- ' closing tick for hsc2hs
+
 instance Eq VkShaderStatisticsInfoAMD where
-        (VkShaderStatisticsInfoAMD## a _) ==
-          x@(VkShaderStatisticsInfoAMD## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkShaderStatisticsInfoAMD where
-        (VkShaderStatisticsInfoAMD## a _) `compare`
-          x@(VkShaderStatisticsInfoAMD## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -764,19 +716,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkShaderStatisticsInfoAMD where
-        unsafeAddr (VkShaderStatisticsInfoAMD## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkShaderStatisticsInfoAMD## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkShaderStatisticsInfoAMD## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkShaderStatisticsInfoAMD where
         type StructFields VkShaderStatisticsInfoAMD =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/SharedPresentSurfaceCapabilitiesKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/SharedPresentSurfaceCapabilitiesKHR.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/SharedPresentSurfaceCapabilitiesKHR.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/SharedPresentSurfaceCapabilitiesKHR.hsc
@@ -8,17 +8,16 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.SharedPresentSurfaceCapabilitiesKHR
-       (VkSharedPresentSurfaceCapabilitiesKHR(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.Image         (VkImageUsageFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.Surface     (VkSurfaceCapabilities2KHR)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkSharedPresentSurfaceCapabilitiesKHR,
+        VkSharedPresentSurfaceCapabilitiesKHR') -- ' closing tick for hsc2hs
+       where
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.Image         (VkImageUsageFlags)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Struct.Surface     (VkSurfaceCapabilities2KHR)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
 --   >     VkStructureType sType;
@@ -27,20 +26,18 @@
 --   > } VkSharedPresentSurfaceCapabilitiesKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSharedPresentSurfaceCapabilitiesKHR VkSharedPresentSurfaceCapabilitiesKHR registry at www.khronos.org>
-data VkSharedPresentSurfaceCapabilitiesKHR = VkSharedPresentSurfaceCapabilitiesKHR## Addr##
-                                                                                    ByteArray##
+type VkSharedPresentSurfaceCapabilitiesKHR =
+     VulkanStruct VkSharedPresentSurfaceCapabilitiesKHR' -- ' closing tick for hsc2hs
 
+data VkSharedPresentSurfaceCapabilitiesKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkSharedPresentSurfaceCapabilitiesKHR where
-        (VkSharedPresentSurfaceCapabilitiesKHR## a _) ==
-          x@(VkSharedPresentSurfaceCapabilitiesKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSharedPresentSurfaceCapabilitiesKHR where
-        (VkSharedPresentSurfaceCapabilitiesKHR## a _) `compare`
-          x@(VkSharedPresentSurfaceCapabilitiesKHR## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -59,21 +56,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSharedPresentSurfaceCapabilitiesKHR
-         where
-        unsafeAddr (VkSharedPresentSurfaceCapabilitiesKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSharedPresentSurfaceCapabilitiesKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSharedPresentSurfaceCapabilitiesKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkSharedPresentSurfaceCapabilitiesKHR where
         type StructFields VkSharedPresentSurfaceCapabilitiesKHR =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc
@@ -8,34 +8,33 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Sparse
-       (VkSparseBufferMemoryBindInfo(..),
-        VkSparseImageFormatProperties(..),
-        VkSparseImageFormatProperties2(..),
-        VkSparseImageFormatProperties2KHR, VkSparseImageMemoryBind(..),
-        VkSparseImageMemoryBindInfo(..),
-        VkSparseImageMemoryRequirements(..),
-        VkSparseImageMemoryRequirements2(..),
+       (VkSparseBufferMemoryBindInfo, VkSparseBufferMemoryBindInfo', -- ' closing tick for hsc2hs
+        VkSparseImageFormatProperties, VkSparseImageFormatProperties', -- ' closing tick for hsc2hs
+        VkSparseImageFormatProperties2, VkSparseImageFormatProperties2', -- ' closing tick for hsc2hs
+        VkSparseImageFormatProperties2KHR, VkSparseImageMemoryBind,
+        VkSparseImageMemoryBind', VkSparseImageMemoryBindInfo, -- ' closing tick for hsc2hs
+        VkSparseImageMemoryBindInfo', VkSparseImageMemoryRequirements, -- ' closing tick for hsc2hs
+        VkSparseImageMemoryRequirements', VkSparseImageMemoryRequirements2, -- ' closing tick for hsc2hs
+        VkSparseImageMemoryRequirements2', -- ' closing tick for hsc2hs
         VkSparseImageMemoryRequirements2KHR,
-        VkSparseImageOpaqueMemoryBindInfo(..), VkSparseMemoryBind(..))
+        VkSparseImageOpaqueMemoryBindInfo,
+        VkSparseImageOpaqueMemoryBindInfo', VkSparseMemoryBind, -- ' closing tick for hsc2hs
+        VkSparseMemoryBind') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes          (VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.Image         (VkImageAspectFlags)
-import           Graphics.Vulkan.Types.Enum.Sparse        (VkSparseImageFormatFlags,
-                                                           VkSparseMemoryBindFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles            (VkBuffer,
-                                                           VkDeviceMemory,
-                                                           VkImage)
-import           Graphics.Vulkan.Types.Struct.Extent      (VkExtent3D)
-import           Graphics.Vulkan.Types.Struct.Image       (VkImageSubresource)
-import           Graphics.Vulkan.Types.Struct.Offset      (VkOffset3D)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes          (VkDeviceSize)
+import Graphics.Vulkan.Types.Enum.Image         (VkImageAspectFlags)
+import Graphics.Vulkan.Types.Enum.Sparse        (VkSparseImageFormatFlags,
+                                                 VkSparseMemoryBindFlags)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Handles            (VkBuffer, VkDeviceMemory,
+                                                 VkImage)
+import Graphics.Vulkan.Types.Struct.Extent      (VkExtent3D)
+import Graphics.Vulkan.Types.Struct.Image       (VkImageSubresource)
+import Graphics.Vulkan.Types.Struct.Offset      (VkOffset3D)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkSparseBufferMemoryBindInfo {
 --   >     VkBuffer buffer;
@@ -44,19 +43,18 @@
 --   > } VkSparseBufferMemoryBindInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSparseBufferMemoryBindInfo VkSparseBufferMemoryBindInfo registry at www.khronos.org>
-data VkSparseBufferMemoryBindInfo = VkSparseBufferMemoryBindInfo## Addr##
-                                                                  ByteArray##
+type VkSparseBufferMemoryBindInfo =
+     VulkanStruct VkSparseBufferMemoryBindInfo' -- ' closing tick for hsc2hs
 
+data VkSparseBufferMemoryBindInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkSparseBufferMemoryBindInfo where
-        (VkSparseBufferMemoryBindInfo## a _) ==
-          x@(VkSparseBufferMemoryBindInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSparseBufferMemoryBindInfo where
-        (VkSparseBufferMemoryBindInfo## a _) `compare`
-          x@(VkSparseBufferMemoryBindInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -75,20 +73,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSparseBufferMemoryBindInfo where
-        unsafeAddr (VkSparseBufferMemoryBindInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSparseBufferMemoryBindInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSparseBufferMemoryBindInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSparseBufferMemoryBindInfo where
         type StructFields VkSparseBufferMemoryBindInfo =
              '["buffer", "bindCount", "pBinds"] -- ' closing tick for hsc2hs
@@ -213,19 +197,18 @@
 --   > } VkSparseImageFormatProperties;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSparseImageFormatProperties VkSparseImageFormatProperties registry at www.khronos.org>
-data VkSparseImageFormatProperties = VkSparseImageFormatProperties## Addr##
-                                                                    ByteArray##
+type VkSparseImageFormatProperties =
+     VulkanStruct VkSparseImageFormatProperties' -- ' closing tick for hsc2hs
 
+data VkSparseImageFormatProperties' -- ' closing tick for hsc2hs
+
 instance Eq VkSparseImageFormatProperties where
-        (VkSparseImageFormatProperties## a _) ==
-          x@(VkSparseImageFormatProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSparseImageFormatProperties where
-        (VkSparseImageFormatProperties## a _) `compare`
-          x@(VkSparseImageFormatProperties## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -244,20 +227,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSparseImageFormatProperties where
-        unsafeAddr (VkSparseImageFormatProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSparseImageFormatProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSparseImageFormatProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSparseImageFormatProperties where
         type StructFields VkSparseImageFormatProperties =
              '["aspectMask", "imageGranularity", "flags"] -- ' closing tick for hsc2hs
@@ -388,19 +357,18 @@
 --   > } VkSparseImageFormatProperties2;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSparseImageFormatProperties2 VkSparseImageFormatProperties2 registry at www.khronos.org>
-data VkSparseImageFormatProperties2 = VkSparseImageFormatProperties2## Addr##
-                                                                      ByteArray##
+type VkSparseImageFormatProperties2 =
+     VulkanStruct VkSparseImageFormatProperties2' -- ' closing tick for hsc2hs
 
+data VkSparseImageFormatProperties2' -- ' closing tick for hsc2hs
+
 instance Eq VkSparseImageFormatProperties2 where
-        (VkSparseImageFormatProperties2## a _) ==
-          x@(VkSparseImageFormatProperties2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSparseImageFormatProperties2 where
-        (VkSparseImageFormatProperties2## a _) `compare`
-          x@(VkSparseImageFormatProperties2## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -419,20 +387,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSparseImageFormatProperties2 where
-        unsafeAddr (VkSparseImageFormatProperties2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSparseImageFormatProperties2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSparseImageFormatProperties2##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSparseImageFormatProperties2 where
         type StructFields VkSparseImageFormatProperties2 =
              '["sType", "pNext", "properties"] -- ' closing tick for hsc2hs
@@ -566,18 +520,18 @@
 --   > } VkSparseImageMemoryBind;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSparseImageMemoryBind VkSparseImageMemoryBind registry at www.khronos.org>
-data VkSparseImageMemoryBind = VkSparseImageMemoryBind## Addr##
-                                                        ByteArray##
+type VkSparseImageMemoryBind =
+     VulkanStruct VkSparseImageMemoryBind' -- ' closing tick for hsc2hs
 
+data VkSparseImageMemoryBind' -- ' closing tick for hsc2hs
+
 instance Eq VkSparseImageMemoryBind where
-        (VkSparseImageMemoryBind## a _) == x@(VkSparseImageMemoryBind## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSparseImageMemoryBind where
-        (VkSparseImageMemoryBind## a _) `compare`
-          x@(VkSparseImageMemoryBind## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -595,18 +549,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSparseImageMemoryBind where
-        unsafeAddr (VkSparseImageMemoryBind## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSparseImageMemoryBind## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSparseImageMemoryBind## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSparseImageMemoryBind where
         type StructFields VkSparseImageMemoryBind =
              '["subresource", "offset", "extent", "memory", "memoryOffset", -- ' closing tick for hsc2hs
@@ -834,19 +776,18 @@
 --   > } VkSparseImageMemoryBindInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSparseImageMemoryBindInfo VkSparseImageMemoryBindInfo registry at www.khronos.org>
-data VkSparseImageMemoryBindInfo = VkSparseImageMemoryBindInfo## Addr##
-                                                                ByteArray##
+type VkSparseImageMemoryBindInfo =
+     VulkanStruct VkSparseImageMemoryBindInfo' -- ' closing tick for hsc2hs
 
+data VkSparseImageMemoryBindInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkSparseImageMemoryBindInfo where
-        (VkSparseImageMemoryBindInfo## a _) ==
-          x@(VkSparseImageMemoryBindInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSparseImageMemoryBindInfo where
-        (VkSparseImageMemoryBindInfo## a _) `compare`
-          x@(VkSparseImageMemoryBindInfo## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -864,20 +805,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSparseImageMemoryBindInfo where
-        unsafeAddr (VkSparseImageMemoryBindInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSparseImageMemoryBindInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSparseImageMemoryBindInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSparseImageMemoryBindInfo where
         type StructFields VkSparseImageMemoryBindInfo =
              '["image", "bindCount", "pBinds"] -- ' closing tick for hsc2hs
@@ -1003,19 +930,18 @@
 --   > } VkSparseImageMemoryRequirements;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSparseImageMemoryRequirements VkSparseImageMemoryRequirements registry at www.khronos.org>
-data VkSparseImageMemoryRequirements = VkSparseImageMemoryRequirements## Addr##
-                                                                        ByteArray##
+type VkSparseImageMemoryRequirements =
+     VulkanStruct VkSparseImageMemoryRequirements' -- ' closing tick for hsc2hs
 
+data VkSparseImageMemoryRequirements' -- ' closing tick for hsc2hs
+
 instance Eq VkSparseImageMemoryRequirements where
-        (VkSparseImageMemoryRequirements## a _) ==
-          x@(VkSparseImageMemoryRequirements## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSparseImageMemoryRequirements where
-        (VkSparseImageMemoryRequirements## a _) `compare`
-          x@(VkSparseImageMemoryRequirements## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1034,20 +960,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSparseImageMemoryRequirements where
-        unsafeAddr (VkSparseImageMemoryRequirements## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSparseImageMemoryRequirements## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSparseImageMemoryRequirements##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSparseImageMemoryRequirements where
         type StructFields VkSparseImageMemoryRequirements =
              '["formatProperties", "imageMipTailFirstLod", "imageMipTailSize", -- ' closing tick for hsc2hs
@@ -1288,20 +1200,18 @@
 --   > } VkSparseImageMemoryRequirements2;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2 registry at www.khronos.org>
-data VkSparseImageMemoryRequirements2 = VkSparseImageMemoryRequirements2## Addr##
-                                                                          ByteArray##
+type VkSparseImageMemoryRequirements2 =
+     VulkanStruct VkSparseImageMemoryRequirements2' -- ' closing tick for hsc2hs
 
+data VkSparseImageMemoryRequirements2' -- ' closing tick for hsc2hs
+
 instance Eq VkSparseImageMemoryRequirements2 where
-        (VkSparseImageMemoryRequirements2## a _) ==
-          x@(VkSparseImageMemoryRequirements2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSparseImageMemoryRequirements2 where
-        (VkSparseImageMemoryRequirements2## a _) `compare`
-          x@(VkSparseImageMemoryRequirements2## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1320,20 +1230,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSparseImageMemoryRequirements2 where
-        unsafeAddr (VkSparseImageMemoryRequirements2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSparseImageMemoryRequirements2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSparseImageMemoryRequirements2##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSparseImageMemoryRequirements2 where
         type StructFields VkSparseImageMemoryRequirements2 =
              '["sType", "pNext", "memoryRequirements"] -- ' closing tick for hsc2hs
@@ -1474,20 +1370,18 @@
 --   > } VkSparseImageOpaqueMemoryBindInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSparseImageOpaqueMemoryBindInfo VkSparseImageOpaqueMemoryBindInfo registry at www.khronos.org>
-data VkSparseImageOpaqueMemoryBindInfo = VkSparseImageOpaqueMemoryBindInfo## Addr##
-                                                                            ByteArray##
+type VkSparseImageOpaqueMemoryBindInfo =
+     VulkanStruct VkSparseImageOpaqueMemoryBindInfo' -- ' closing tick for hsc2hs
 
+data VkSparseImageOpaqueMemoryBindInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkSparseImageOpaqueMemoryBindInfo where
-        (VkSparseImageOpaqueMemoryBindInfo## a _) ==
-          x@(VkSparseImageOpaqueMemoryBindInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSparseImageOpaqueMemoryBindInfo where
-        (VkSparseImageOpaqueMemoryBindInfo## a _) `compare`
-          x@(VkSparseImageOpaqueMemoryBindInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1506,20 +1400,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSparseImageOpaqueMemoryBindInfo where
-        unsafeAddr (VkSparseImageOpaqueMemoryBindInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSparseImageOpaqueMemoryBindInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSparseImageOpaqueMemoryBindInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSparseImageOpaqueMemoryBindInfo where
         type StructFields VkSparseImageOpaqueMemoryBindInfo =
              '["image", "bindCount", "pBinds"] -- ' closing tick for hsc2hs
@@ -1652,17 +1532,17 @@
 --   > } VkSparseMemoryBind;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSparseMemoryBind VkSparseMemoryBind registry at www.khronos.org>
-data VkSparseMemoryBind = VkSparseMemoryBind## Addr## ByteArray##
+type VkSparseMemoryBind = VulkanStruct VkSparseMemoryBind' -- ' closing tick for hsc2hs
 
+data VkSparseMemoryBind' -- ' closing tick for hsc2hs
+
 instance Eq VkSparseMemoryBind where
-        (VkSparseMemoryBind## a _) == x@(VkSparseMemoryBind## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSparseMemoryBind where
-        (VkSparseMemoryBind## a _) `compare` x@(VkSparseMemoryBind## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1679,18 +1559,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSparseMemoryBind where
-        unsafeAddr (VkSparseMemoryBind## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSparseMemoryBind## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSparseMemoryBind## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkSparseMemoryBind where
         type StructFields VkSparseMemoryBind =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Specialization.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Specialization.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Specialization.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Specialization.hsc
@@ -8,14 +8,13 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Specialization
-       (VkSpecializationInfo(..), VkSpecializationMapEntry(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Base                         (Addr##, ByteArray##,
-                                                   byteArrayContents##,
-                                                   plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+       (VkSpecializationInfo, VkSpecializationInfo', -- ' closing tick for hsc2hs
+        VkSpecializationMapEntry, VkSpecializationMapEntry') -- ' closing tick for hsc2hs
+       where
+import Foreign.Storable                 (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import System.IO.Unsafe                 (unsafeDupablePerformIO)
 
 -- | > typedef struct VkSpecializationInfo {
 --   >     uint32_t               mapEntryCount;
@@ -25,17 +24,17 @@
 --   > } VkSpecializationInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSpecializationInfo VkSpecializationInfo registry at www.khronos.org>
-data VkSpecializationInfo = VkSpecializationInfo## Addr## ByteArray##
+type VkSpecializationInfo = VulkanStruct VkSpecializationInfo' -- ' closing tick for hsc2hs
 
+data VkSpecializationInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkSpecializationInfo where
-        (VkSpecializationInfo## a _) == x@(VkSpecializationInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSpecializationInfo where
-        (VkSpecializationInfo## a _) `compare` x@(VkSpecializationInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -53,18 +52,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSpecializationInfo where
-        unsafeAddr (VkSpecializationInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSpecializationInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSpecializationInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSpecializationInfo where
         type StructFields VkSpecializationInfo =
              '["mapEntryCount", "pMapEntries", "dataSize", "pData"] -- ' closing tick for hsc2hs
@@ -221,18 +208,18 @@
 --   > } VkSpecializationMapEntry;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSpecializationMapEntry VkSpecializationMapEntry registry at www.khronos.org>
-data VkSpecializationMapEntry = VkSpecializationMapEntry## Addr##
-                                                          ByteArray##
+type VkSpecializationMapEntry =
+     VulkanStruct VkSpecializationMapEntry' -- ' closing tick for hsc2hs
 
+data VkSpecializationMapEntry' -- ' closing tick for hsc2hs
+
 instance Eq VkSpecializationMapEntry where
-        (VkSpecializationMapEntry## a _) ==
-          x@(VkSpecializationMapEntry## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSpecializationMapEntry where
-        (VkSpecializationMapEntry## a _) `compare`
-          x@(VkSpecializationMapEntry## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -249,19 +236,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSpecializationMapEntry where
-        unsafeAddr (VkSpecializationMapEntry## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSpecializationMapEntry## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSpecializationMapEntry## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkSpecializationMapEntry where
         type StructFields VkSpecializationMapEntry =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/StencilOpState.hsc b/src-gen/Graphics/Vulkan/Types/Struct/StencilOpState.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/StencilOpState.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/StencilOpState.hsc
@@ -8,16 +8,13 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.StencilOpState
-       (VkStencilOpState(..)) where
-import           Foreign.Storable                     (Storable (..))
-import           GHC.Base                             (Addr##, ByteArray##,
-                                                       byteArrayContents##,
-                                                       plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.CompareOp (VkCompareOp)
-import           Graphics.Vulkan.Types.Enum.Stencil   (VkStencilOp)
-import           System.IO.Unsafe                     (unsafeDupablePerformIO)
+       (VkStencilOpState, VkStencilOpState') where -- ' closing tick for hsc2hs
+import Foreign.Storable                     (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.CompareOp (VkCompareOp)
+import Graphics.Vulkan.Types.Enum.Stencil   (VkStencilOp)
+import System.IO.Unsafe                     (unsafeDupablePerformIO)
 
 -- | > typedef struct VkStencilOpState {
 --   >     VkStencilOp            failOp;
@@ -30,17 +27,17 @@
 --   > } VkStencilOpState;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkStencilOpState VkStencilOpState registry at www.khronos.org>
-data VkStencilOpState = VkStencilOpState## Addr## ByteArray##
+type VkStencilOpState = VulkanStruct VkStencilOpState' -- ' closing tick for hsc2hs
 
+data VkStencilOpState' -- ' closing tick for hsc2hs
+
 instance Eq VkStencilOpState where
-        (VkStencilOpState## a _) == x@(VkStencilOpState## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkStencilOpState where
-        (VkStencilOpState## a _) `compare` x@(VkStencilOpState## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -57,18 +54,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkStencilOpState where
-        unsafeAddr (VkStencilOpState## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkStencilOpState## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkStencilOpState## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkStencilOpState where
         type StructFields VkStencilOpState =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/SubmitInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/SubmitInfo.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/SubmitInfo.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/SubmitInfo.hsc
@@ -7,19 +7,15 @@
 {-# LANGUAGE Strict                #-}
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.SubmitInfo (VkSubmitInfo(..))
-       where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.Pipeline      (VkPipelineStageFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles            (VkCommandBuffer,
-                                                           VkSemaphore)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+module Graphics.Vulkan.Types.Struct.SubmitInfo
+       (VkSubmitInfo, VkSubmitInfo') where -- ' closing tick for hsc2hs
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.Pipeline      (VkPipelineStageFlags)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Handles            (VkCommandBuffer, VkSemaphore)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkSubmitInfo {
 --   >     VkStructureType sType;
@@ -34,17 +30,17 @@
 --   > } VkSubmitInfo;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSubmitInfo VkSubmitInfo registry at www.khronos.org>
-data VkSubmitInfo = VkSubmitInfo## Addr## ByteArray##
+type VkSubmitInfo = VulkanStruct VkSubmitInfo' -- ' closing tick for hsc2hs
 
+data VkSubmitInfo' -- ' closing tick for hsc2hs
+
 instance Eq VkSubmitInfo where
-        (VkSubmitInfo## a _) == x@(VkSubmitInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSubmitInfo where
-        (VkSubmitInfo## a _) `compare` x@(VkSubmitInfo## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -61,18 +57,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSubmitInfo where
-        unsafeAddr (VkSubmitInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSubmitInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSubmitInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkSubmitInfo where
         type StructFields VkSubmitInfo =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Subpass.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Subpass.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Subpass.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Subpass.hsc
@@ -8,23 +8,21 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Subpass
-       (VkSubpassDependency(..), VkSubpassDescription(..),
-        VkSubpassSampleLocationsEXT(..))
+       (VkSubpassDependency, VkSubpassDependency', VkSubpassDescription, -- ' closing tick for hsc2hs
+        VkSubpassDescription', VkSubpassSampleLocationsEXT, -- ' closing tick for hsc2hs
+        VkSubpassSampleLocationsEXT') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                            (Storable (..))
-import           GHC.Base                                    (Addr##, ByteArray##,
-                                                              byteArrayContents##,
-                                                              plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.AccessFlags      (VkAccessFlags)
-import           Graphics.Vulkan.Types.Enum.DependencyFlags  (VkDependencyFlags)
-import           Graphics.Vulkan.Types.Enum.Pipeline         (VkPipelineBindPoint,
-                                                              VkPipelineStageFlags)
-import           Graphics.Vulkan.Types.Enum.Subpass          (VkSubpassDescriptionFlags)
-import           Graphics.Vulkan.Types.Struct.Attachment     (VkAttachmentReference)
-import           Graphics.Vulkan.Types.Struct.SampleLocation (VkSampleLocationsInfoEXT)
-import           System.IO.Unsafe                            (unsafeDupablePerformIO)
+import Foreign.Storable                            (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.AccessFlags      (VkAccessFlags)
+import Graphics.Vulkan.Types.Enum.DependencyFlags  (VkDependencyFlags)
+import Graphics.Vulkan.Types.Enum.Pipeline         (VkPipelineBindPoint,
+                                                    VkPipelineStageFlags)
+import Graphics.Vulkan.Types.Enum.Subpass          (VkSubpassDescriptionFlags)
+import Graphics.Vulkan.Types.Struct.Attachment     (VkAttachmentReference)
+import Graphics.Vulkan.Types.Struct.SampleLocation (VkSampleLocationsInfoEXT)
+import System.IO.Unsafe                            (unsafeDupablePerformIO)
 
 -- | > typedef struct VkSubpassDependency {
 --   >     uint32_t               srcSubpass;
@@ -37,17 +35,17 @@
 --   > } VkSubpassDependency;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSubpassDependency VkSubpassDependency registry at www.khronos.org>
-data VkSubpassDependency = VkSubpassDependency## Addr## ByteArray##
+type VkSubpassDependency = VulkanStruct VkSubpassDependency' -- ' closing tick for hsc2hs
 
+data VkSubpassDependency' -- ' closing tick for hsc2hs
+
 instance Eq VkSubpassDependency where
-        (VkSubpassDependency## a _) == x@(VkSubpassDependency## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSubpassDependency where
-        (VkSubpassDependency## a _) `compare` x@(VkSubpassDependency## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -65,18 +63,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSubpassDependency where
-        unsafeAddr (VkSubpassDependency## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSubpassDependency## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSubpassDependency## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSubpassDependency where
         type StructFields VkSubpassDependency =
              '["srcSubpass", "dstSubpass", "srcStageMask", "dstStageMask", -- ' closing tick for hsc2hs
@@ -349,17 +335,17 @@
 --   > } VkSubpassDescription;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSubpassDescription VkSubpassDescription registry at www.khronos.org>
-data VkSubpassDescription = VkSubpassDescription## Addr## ByteArray##
+type VkSubpassDescription = VulkanStruct VkSubpassDescription' -- ' closing tick for hsc2hs
 
+data VkSubpassDescription' -- ' closing tick for hsc2hs
+
 instance Eq VkSubpassDescription where
-        (VkSubpassDescription## a _) == x@(VkSubpassDescription## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSubpassDescription where
-        (VkSubpassDescription## a _) `compare` x@(VkSubpassDescription## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -377,18 +363,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSubpassDescription where
-        unsafeAddr (VkSubpassDescription## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSubpassDescription## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSubpassDescription## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSubpassDescription where
         type StructFields VkSubpassDescription =
              '["flags", "pipelineBindPoint", "inputAttachmentCount", -- ' closing tick for hsc2hs
@@ -795,19 +769,18 @@
 --   > } VkSubpassSampleLocationsEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSubpassSampleLocationsEXT VkSubpassSampleLocationsEXT registry at www.khronos.org>
-data VkSubpassSampleLocationsEXT = VkSubpassSampleLocationsEXT## Addr##
-                                                                ByteArray##
+type VkSubpassSampleLocationsEXT =
+     VulkanStruct VkSubpassSampleLocationsEXT' -- ' closing tick for hsc2hs
 
+data VkSubpassSampleLocationsEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkSubpassSampleLocationsEXT where
-        (VkSubpassSampleLocationsEXT## a _) ==
-          x@(VkSubpassSampleLocationsEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSubpassSampleLocationsEXT where
-        (VkSubpassSampleLocationsEXT## a _) `compare`
-          x@(VkSubpassSampleLocationsEXT## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -824,20 +797,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSubpassSampleLocationsEXT where
-        unsafeAddr (VkSubpassSampleLocationsEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSubpassSampleLocationsEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSubpassSampleLocationsEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkSubpassSampleLocationsEXT where
         type StructFields VkSubpassSampleLocationsEXT =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/SubresourceLayout.hsc b/src-gen/Graphics/Vulkan/Types/Struct/SubresourceLayout.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/SubresourceLayout.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/SubresourceLayout.hsc
@@ -8,15 +8,12 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.SubresourceLayout
-       (VkSubresourceLayout(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Base                         (Addr##, ByteArray##,
-                                                   byteArrayContents##,
-                                                   plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes  (VkDeviceSize)
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+       (VkSubresourceLayout, VkSubresourceLayout') where -- ' closing tick for hsc2hs
+import Foreign.Storable                 (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes  (VkDeviceSize)
+import System.IO.Unsafe                 (unsafeDupablePerformIO)
 
 -- | > typedef struct VkSubresourceLayout {
 --   >     VkDeviceSize           offset;
@@ -27,17 +24,17 @@
 --   > } VkSubresourceLayout;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSubresourceLayout VkSubresourceLayout registry at www.khronos.org>
-data VkSubresourceLayout = VkSubresourceLayout## Addr## ByteArray##
+type VkSubresourceLayout = VulkanStruct VkSubresourceLayout' -- ' closing tick for hsc2hs
 
+data VkSubresourceLayout' -- ' closing tick for hsc2hs
+
 instance Eq VkSubresourceLayout where
-        (VkSubresourceLayout## a _) == x@(VkSubresourceLayout## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSubresourceLayout where
-        (VkSubresourceLayout## a _) `compare` x@(VkSubresourceLayout## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -54,18 +51,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSubresourceLayout where
-        unsafeAddr (VkSubresourceLayout## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSubresourceLayout## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSubresourceLayout## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkSubresourceLayout where
         type StructFields VkSubresourceLayout =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Surface.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Surface.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Surface.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Surface.hsc
@@ -8,27 +8,25 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Surface
-       (VkSurfaceCapabilities2EXT(..), VkSurfaceCapabilities2KHR(..),
-        VkSurfaceCapabilitiesKHR(..), VkSurfaceFormat2KHR(..),
-        VkSurfaceFormatKHR(..))
+       (VkSurfaceCapabilities2EXT, VkSurfaceCapabilities2EXT', -- ' closing tick for hsc2hs
+        VkSurfaceCapabilities2KHR, VkSurfaceCapabilities2KHR', -- ' closing tick for hsc2hs
+        VkSurfaceCapabilitiesKHR, VkSurfaceCapabilitiesKHR', -- ' closing tick for hsc2hs
+        VkSurfaceFormat2KHR, VkSurfaceFormat2KHR', VkSurfaceFormatKHR, -- ' closing tick for hsc2hs
+        VkSurfaceFormatKHR') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                                  (Storable (..))
-import           GHC.Base                                          (Addr##,
-                                                                    ByteArray##,
-                                                                    byteArrayContents##,
-                                                                    plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.Color                  (VkColorSpaceKHR)
-import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR (VkCompositeAlphaFlagsKHR)
-import           Graphics.Vulkan.Types.Enum.Format                 (VkFormat)
-import           Graphics.Vulkan.Types.Enum.Image                  (VkImageUsageFlags)
-import           Graphics.Vulkan.Types.Enum.StructureType          (VkStructureType)
-import           Graphics.Vulkan.Types.Enum.Surface                (VkSurfaceCounterFlagsEXT,
-                                                                    VkSurfaceTransformFlagBitsKHR,
-                                                                    VkSurfaceTransformFlagsKHR)
-import           Graphics.Vulkan.Types.Struct.Extent               (VkExtent2D)
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
+import Foreign.Storable                                  (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.Color                  (VkColorSpaceKHR)
+import Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR (VkCompositeAlphaFlagsKHR)
+import Graphics.Vulkan.Types.Enum.Format                 (VkFormat)
+import Graphics.Vulkan.Types.Enum.Image                  (VkImageUsageFlags)
+import Graphics.Vulkan.Types.Enum.StructureType          (VkStructureType)
+import Graphics.Vulkan.Types.Enum.Surface                (VkSurfaceCounterFlagsEXT,
+                                                          VkSurfaceTransformFlagBitsKHR,
+                                                          VkSurfaceTransformFlagsKHR)
+import Graphics.Vulkan.Types.Struct.Extent               (VkExtent2D)
+import System.IO.Unsafe                                  (unsafeDupablePerformIO)
 
 -- | > typedef struct VkSurfaceCapabilities2EXT {
 --   >     VkStructureType sType;
@@ -47,18 +45,18 @@
 --   > } VkSurfaceCapabilities2EXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSurfaceCapabilities2EXT VkSurfaceCapabilities2EXT registry at www.khronos.org>
-data VkSurfaceCapabilities2EXT = VkSurfaceCapabilities2EXT## Addr##
-                                                            ByteArray##
+type VkSurfaceCapabilities2EXT =
+     VulkanStruct VkSurfaceCapabilities2EXT' -- ' closing tick for hsc2hs
 
+data VkSurfaceCapabilities2EXT' -- ' closing tick for hsc2hs
+
 instance Eq VkSurfaceCapabilities2EXT where
-        (VkSurfaceCapabilities2EXT## a _) ==
-          x@(VkSurfaceCapabilities2EXT## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSurfaceCapabilities2EXT where
-        (VkSurfaceCapabilities2EXT## a _) `compare`
-          x@(VkSurfaceCapabilities2EXT## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -76,19 +74,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSurfaceCapabilities2EXT where
-        unsafeAddr (VkSurfaceCapabilities2EXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSurfaceCapabilities2EXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSurfaceCapabilities2EXT## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSurfaceCapabilities2EXT where
         type StructFields VkSurfaceCapabilities2EXT =
              '["sType", "pNext", "minImageCount", "maxImageCount", -- ' closing tick for hsc2hs
@@ -639,18 +624,18 @@
 --   > } VkSurfaceCapabilities2KHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSurfaceCapabilities2KHR VkSurfaceCapabilities2KHR registry at www.khronos.org>
-data VkSurfaceCapabilities2KHR = VkSurfaceCapabilities2KHR## Addr##
-                                                            ByteArray##
+type VkSurfaceCapabilities2KHR =
+     VulkanStruct VkSurfaceCapabilities2KHR' -- ' closing tick for hsc2hs
 
+data VkSurfaceCapabilities2KHR' -- ' closing tick for hsc2hs
+
 instance Eq VkSurfaceCapabilities2KHR where
-        (VkSurfaceCapabilities2KHR## a _) ==
-          x@(VkSurfaceCapabilities2KHR## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSurfaceCapabilities2KHR where
-        (VkSurfaceCapabilities2KHR## a _) `compare`
-          x@(VkSurfaceCapabilities2KHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -668,19 +653,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSurfaceCapabilities2KHR where
-        unsafeAddr (VkSurfaceCapabilities2KHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSurfaceCapabilities2KHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSurfaceCapabilities2KHR## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSurfaceCapabilities2KHR where
         type StructFields VkSurfaceCapabilities2KHR =
              '["sType", "pNext", "surfaceCapabilities"] -- ' closing tick for hsc2hs
@@ -813,18 +785,18 @@
 --   > } VkSurfaceCapabilitiesKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSurfaceCapabilitiesKHR VkSurfaceCapabilitiesKHR registry at www.khronos.org>
-data VkSurfaceCapabilitiesKHR = VkSurfaceCapabilitiesKHR## Addr##
-                                                          ByteArray##
+type VkSurfaceCapabilitiesKHR =
+     VulkanStruct VkSurfaceCapabilitiesKHR' -- ' closing tick for hsc2hs
 
+data VkSurfaceCapabilitiesKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkSurfaceCapabilitiesKHR where
-        (VkSurfaceCapabilitiesKHR## a _) ==
-          x@(VkSurfaceCapabilitiesKHR## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSurfaceCapabilitiesKHR where
-        (VkSurfaceCapabilitiesKHR## a _) `compare`
-          x@(VkSurfaceCapabilitiesKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -842,19 +814,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSurfaceCapabilitiesKHR where
-        unsafeAddr (VkSurfaceCapabilitiesKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSurfaceCapabilitiesKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSurfaceCapabilitiesKHR## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSurfaceCapabilitiesKHR where
         type StructFields VkSurfaceCapabilitiesKHR =
              '["minImageCount", "maxImageCount", "currentExtent", -- ' closing tick for hsc2hs
@@ -1270,17 +1229,17 @@
 --   > } VkSurfaceFormat2KHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSurfaceFormat2KHR VkSurfaceFormat2KHR registry at www.khronos.org>
-data VkSurfaceFormat2KHR = VkSurfaceFormat2KHR## Addr## ByteArray##
+type VkSurfaceFormat2KHR = VulkanStruct VkSurfaceFormat2KHR' -- ' closing tick for hsc2hs
 
+data VkSurfaceFormat2KHR' -- ' closing tick for hsc2hs
+
 instance Eq VkSurfaceFormat2KHR where
-        (VkSurfaceFormat2KHR## a _) == x@(VkSurfaceFormat2KHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSurfaceFormat2KHR where
-        (VkSurfaceFormat2KHR## a _) `compare` x@(VkSurfaceFormat2KHR## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1298,18 +1257,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSurfaceFormat2KHR where
-        unsafeAddr (VkSurfaceFormat2KHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSurfaceFormat2KHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSurfaceFormat2KHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSurfaceFormat2KHR where
         type StructFields VkSurfaceFormat2KHR =
              '["sType", "pNext", "surfaceFormat"] -- ' closing tick for hsc2hs
@@ -1430,17 +1377,17 @@
 --   > } VkSurfaceFormatKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSurfaceFormatKHR VkSurfaceFormatKHR registry at www.khronos.org>
-data VkSurfaceFormatKHR = VkSurfaceFormatKHR## Addr## ByteArray##
+type VkSurfaceFormatKHR = VulkanStruct VkSurfaceFormatKHR' -- ' closing tick for hsc2hs
 
+data VkSurfaceFormatKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkSurfaceFormatKHR where
-        (VkSurfaceFormatKHR## a _) == x@(VkSurfaceFormatKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSurfaceFormatKHR where
-        (VkSurfaceFormatKHR## a _) `compare` x@(VkSurfaceFormatKHR## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -1457,18 +1404,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSurfaceFormatKHR where
-        unsafeAddr (VkSurfaceFormatKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSurfaceFormatKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSurfaceFormatKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkSurfaceFormatKHR where
         type StructFields VkSurfaceFormatKHR = '["format", "colorSpace"] -- ' closing tick for hsc2hs
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc b/src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc
@@ -8,30 +8,27 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.SwapchainC
-       (VkSwapchainCounterCreateInfoEXT(..), VkSwapchainCreateInfoKHR(..))
+       (VkSwapchainCounterCreateInfoEXT, VkSwapchainCounterCreateInfoEXT', -- ' closing tick for hsc2hs
+        VkSwapchainCreateInfoKHR, VkSwapchainCreateInfoKHR') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                                   (Storable (..))
-import           GHC.Base                                           (Addr##,
-                                                                     ByteArray##,
-                                                                     byteArrayContents##,
-                                                                     plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                    (VkBool32)
-import           Graphics.Vulkan.Types.Enum.Color                   (VkColorSpaceKHR)
-import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR  (VkCompositeAlphaFlagBitsKHR)
-import           Graphics.Vulkan.Types.Enum.Format                  (VkFormat)
-import           Graphics.Vulkan.Types.Enum.Image                   (VkImageUsageFlags)
-import           Graphics.Vulkan.Types.Enum.PresentModeKHR          (VkPresentModeKHR)
-import           Graphics.Vulkan.Types.Enum.SharingMode             (VkSharingMode)
-import           Graphics.Vulkan.Types.Enum.StructureType           (VkStructureType)
-import           Graphics.Vulkan.Types.Enum.Surface                 (VkSurfaceCounterFlagsEXT,
-                                                                     VkSurfaceTransformFlagBitsKHR)
-import           Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR (VkSwapchainCreateFlagsKHR)
-import           Graphics.Vulkan.Types.Handles                      (VkSurfaceKHR,
-                                                                     VkSwapchainKHR)
-import           Graphics.Vulkan.Types.Struct.Extent                (VkExtent2D)
-import           System.IO.Unsafe                                   (unsafeDupablePerformIO)
+import Foreign.Storable                                   (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes                    (VkBool32)
+import Graphics.Vulkan.Types.Enum.Color                   (VkColorSpaceKHR)
+import Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR  (VkCompositeAlphaFlagBitsKHR)
+import Graphics.Vulkan.Types.Enum.Format                  (VkFormat)
+import Graphics.Vulkan.Types.Enum.Image                   (VkImageUsageFlags)
+import Graphics.Vulkan.Types.Enum.PresentModeKHR          (VkPresentModeKHR)
+import Graphics.Vulkan.Types.Enum.SharingMode             (VkSharingMode)
+import Graphics.Vulkan.Types.Enum.StructureType           (VkStructureType)
+import Graphics.Vulkan.Types.Enum.Surface                 (VkSurfaceCounterFlagsEXT,
+                                                           VkSurfaceTransformFlagBitsKHR)
+import Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR (VkSwapchainCreateFlagsKHR)
+import Graphics.Vulkan.Types.Handles                      (VkSurfaceKHR,
+                                                           VkSwapchainKHR)
+import Graphics.Vulkan.Types.Struct.Extent                (VkExtent2D)
+import System.IO.Unsafe                                   (unsafeDupablePerformIO)
 
 -- | > typedef struct VkSwapchainCounterCreateInfoEXT {
 --   >     VkStructureType sType;
@@ -40,19 +37,18 @@
 --   > } VkSwapchainCounterCreateInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSwapchainCounterCreateInfoEXT VkSwapchainCounterCreateInfoEXT registry at www.khronos.org>
-data VkSwapchainCounterCreateInfoEXT = VkSwapchainCounterCreateInfoEXT## Addr##
-                                                                        ByteArray##
+type VkSwapchainCounterCreateInfoEXT =
+     VulkanStruct VkSwapchainCounterCreateInfoEXT' -- ' closing tick for hsc2hs
 
+data VkSwapchainCounterCreateInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkSwapchainCounterCreateInfoEXT where
-        (VkSwapchainCounterCreateInfoEXT## a _) ==
-          x@(VkSwapchainCounterCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSwapchainCounterCreateInfoEXT where
-        (VkSwapchainCounterCreateInfoEXT## a _) `compare`
-          x@(VkSwapchainCounterCreateInfoEXT## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -71,20 +67,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkSwapchainCounterCreateInfoEXT where
-        unsafeAddr (VkSwapchainCounterCreateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSwapchainCounterCreateInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSwapchainCounterCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkSwapchainCounterCreateInfoEXT where
         type StructFields VkSwapchainCounterCreateInfoEXT =
              '["sType", "pNext", "surfaceCounters"] -- ' closing tick for hsc2hs
@@ -231,18 +213,18 @@
 --   > } VkSwapchainCreateInfoKHR;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSwapchainCreateInfoKHR VkSwapchainCreateInfoKHR registry at www.khronos.org>
-data VkSwapchainCreateInfoKHR = VkSwapchainCreateInfoKHR## Addr##
-                                                          ByteArray##
+type VkSwapchainCreateInfoKHR =
+     VulkanStruct VkSwapchainCreateInfoKHR' -- ' closing tick for hsc2hs
 
+data VkSwapchainCreateInfoKHR' -- ' closing tick for hsc2hs
+
 instance Eq VkSwapchainCreateInfoKHR where
-        (VkSwapchainCreateInfoKHR## a _) ==
-          x@(VkSwapchainCreateInfoKHR## b _) = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkSwapchainCreateInfoKHR where
-        (VkSwapchainCreateInfoKHR## a _) `compare`
-          x@(VkSwapchainCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -259,19 +241,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSwapchainCreateInfoKHR where
-        unsafeAddr (VkSwapchainCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSwapchainCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSwapchainCreateInfoKHR## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkSwapchainCreateInfoKHR where
         type StructFields VkSwapchainCreateInfoKHR =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/TextureLODGatherFormatPropertiesAMD.hsc b/src-gen/Graphics/Vulkan/Types/Struct/TextureLODGatherFormatPropertiesAMD.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/TextureLODGatherFormatPropertiesAMD.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/TextureLODGatherFormatPropertiesAMD.hsc
@@ -8,17 +8,16 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.TextureLODGatherFormatPropertiesAMD
-       (VkTextureLODGatherFormatPropertiesAMD(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes          (VkBool32)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.Image       (VkImageFormatProperties2)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkTextureLODGatherFormatPropertiesAMD,
+        VkTextureLODGatherFormatPropertiesAMD') -- ' closing tick for hsc2hs
+       where
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes          (VkBool32)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Struct.Image       (VkImageFormatProperties2)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkTextureLODGatherFormatPropertiesAMD {
 --   >     VkStructureType sType;
@@ -27,20 +26,18 @@
 --   > } VkTextureLODGatherFormatPropertiesAMD;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkTextureLODGatherFormatPropertiesAMD VkTextureLODGatherFormatPropertiesAMD registry at www.khronos.org>
-data VkTextureLODGatherFormatPropertiesAMD = VkTextureLODGatherFormatPropertiesAMD## Addr##
-                                                                                    ByteArray##
+type VkTextureLODGatherFormatPropertiesAMD =
+     VulkanStruct VkTextureLODGatherFormatPropertiesAMD' -- ' closing tick for hsc2hs
 
+data VkTextureLODGatherFormatPropertiesAMD' -- ' closing tick for hsc2hs
+
 instance Eq VkTextureLODGatherFormatPropertiesAMD where
-        (VkTextureLODGatherFormatPropertiesAMD## a _) ==
-          x@(VkTextureLODGatherFormatPropertiesAMD## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkTextureLODGatherFormatPropertiesAMD where
-        (VkTextureLODGatherFormatPropertiesAMD## a _) `compare`
-          x@(VkTextureLODGatherFormatPropertiesAMD## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -59,21 +56,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkTextureLODGatherFormatPropertiesAMD
-         where
-        unsafeAddr (VkTextureLODGatherFormatPropertiesAMD## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkTextureLODGatherFormatPropertiesAMD## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkTextureLODGatherFormatPropertiesAMD##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkTextureLODGatherFormatPropertiesAMD where
         type StructFields VkTextureLODGatherFormatPropertiesAMD =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc
@@ -8,20 +8,17 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Validation
-       (VkValidationCacheCreateInfoEXT(..), VkValidationFlagsEXT(..))
+       (VkValidationCacheCreateInfoEXT, VkValidationCacheCreateInfoEXT', -- ' closing tick for hsc2hs
+        VkValidationFlagsEXT, VkValidationFlagsEXT') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                                (Storable (..))
-import           GHC.Base                                        (Addr##,
-                                                                  ByteArray##,
-                                                                  byteArrayContents##,
-                                                                  plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks                  (VkValidationCacheCreateFlagsEXT)
-import           Graphics.Vulkan.Types.Enum.StructureType        (VkStructureType)
-import           Graphics.Vulkan.Types.Enum.ValidationC          (VkValidationCheckEXT)
-import           Graphics.Vulkan.Types.Struct.InstanceCreateInfo (VkInstanceCreateInfo)
-import           System.IO.Unsafe                                (unsafeDupablePerformIO)
+import Foreign.Storable                                (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Bitmasks                  (VkValidationCacheCreateFlagsEXT)
+import Graphics.Vulkan.Types.Enum.StructureType        (VkStructureType)
+import Graphics.Vulkan.Types.Enum.ValidationC          (VkValidationCheckEXT)
+import Graphics.Vulkan.Types.Struct.InstanceCreateInfo (VkInstanceCreateInfo)
+import System.IO.Unsafe                                (unsafeDupablePerformIO)
 
 -- | > typedef struct VkValidationCacheCreateInfoEXT {
 --   >     VkStructureType sType;
@@ -32,19 +29,18 @@
 --   > } VkValidationCacheCreateInfoEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkValidationCacheCreateInfoEXT VkValidationCacheCreateInfoEXT registry at www.khronos.org>
-data VkValidationCacheCreateInfoEXT = VkValidationCacheCreateInfoEXT## Addr##
-                                                                      ByteArray##
+type VkValidationCacheCreateInfoEXT =
+     VulkanStruct VkValidationCacheCreateInfoEXT' -- ' closing tick for hsc2hs
 
+data VkValidationCacheCreateInfoEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkValidationCacheCreateInfoEXT where
-        (VkValidationCacheCreateInfoEXT## a _) ==
-          x@(VkValidationCacheCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkValidationCacheCreateInfoEXT where
-        (VkValidationCacheCreateInfoEXT## a _) `compare`
-          x@(VkValidationCacheCreateInfoEXT## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -63,20 +59,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkValidationCacheCreateInfoEXT where
-        unsafeAddr (VkValidationCacheCreateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkValidationCacheCreateInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkValidationCacheCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkValidationCacheCreateInfoEXT where
         type StructFields VkValidationCacheCreateInfoEXT =
              '["sType", "pNext", "flags", "initialDataSize", "pInitialData"] -- ' closing tick for hsc2hs
@@ -279,17 +261,17 @@
 --   > } VkValidationFlagsEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkValidationFlagsEXT VkValidationFlagsEXT registry at www.khronos.org>
-data VkValidationFlagsEXT = VkValidationFlagsEXT## Addr## ByteArray##
+type VkValidationFlagsEXT = VulkanStruct VkValidationFlagsEXT' -- ' closing tick for hsc2hs
 
+data VkValidationFlagsEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkValidationFlagsEXT where
-        (VkValidationFlagsEXT## a _) == x@(VkValidationFlagsEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkValidationFlagsEXT where
-        (VkValidationFlagsEXT## a _) `compare` x@(VkValidationFlagsEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -306,18 +288,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkValidationFlagsEXT where
-        unsafeAddr (VkValidationFlagsEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkValidationFlagsEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkValidationFlagsEXT## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkValidationFlagsEXT where
         type StructFields VkValidationFlagsEXT =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VertexInput.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VertexInput.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/VertexInput.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/VertexInput.hsc
@@ -8,19 +8,18 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.VertexInput
-       (VkVertexInputAttributeDescription(..),
-        VkVertexInputBindingDescription(..),
-        VkVertexInputBindingDivisorDescriptionEXT(..))
+       (VkVertexInputAttributeDescription,
+        VkVertexInputAttributeDescription', -- ' closing tick for hsc2hs
+        VkVertexInputBindingDescription, VkVertexInputBindingDescription', -- ' closing tick for hsc2hs
+        VkVertexInputBindingDivisorDescriptionEXT,
+        VkVertexInputBindingDivisorDescriptionEXT') -- ' closing tick for hsc2hs
        where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Base                                   (Addr##, ByteArray##,
-                                                             byteArrayContents##,
-                                                             plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.Format          (VkFormat)
-import           Graphics.Vulkan.Types.Enum.VertexInputRate (VkVertexInputRate)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
+import Foreign.Storable                           (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.Format          (VkFormat)
+import Graphics.Vulkan.Types.Enum.VertexInputRate (VkVertexInputRate)
+import System.IO.Unsafe                           (unsafeDupablePerformIO)
 
 -- | > typedef struct VkVertexInputAttributeDescription {
 --   >     uint32_t               location;
@@ -30,20 +29,18 @@
 --   > } VkVertexInputAttributeDescription;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkVertexInputAttributeDescription VkVertexInputAttributeDescription registry at www.khronos.org>
-data VkVertexInputAttributeDescription = VkVertexInputAttributeDescription## Addr##
-                                                                            ByteArray##
+type VkVertexInputAttributeDescription =
+     VulkanStruct VkVertexInputAttributeDescription' -- ' closing tick for hsc2hs
 
+data VkVertexInputAttributeDescription' -- ' closing tick for hsc2hs
+
 instance Eq VkVertexInputAttributeDescription where
-        (VkVertexInputAttributeDescription## a _) ==
-          x@(VkVertexInputAttributeDescription## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkVertexInputAttributeDescription where
-        (VkVertexInputAttributeDescription## a _) `compare`
-          x@(VkVertexInputAttributeDescription## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -62,20 +59,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkVertexInputAttributeDescription where
-        unsafeAddr (VkVertexInputAttributeDescription## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkVertexInputAttributeDescription## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkVertexInputAttributeDescription##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkVertexInputAttributeDescription where
         type StructFields VkVertexInputAttributeDescription =
              '["location", "binding", "format", "offset"] -- ' closing tick for hsc2hs
@@ -243,19 +226,18 @@
 --   > } VkVertexInputBindingDescription;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkVertexInputBindingDescription VkVertexInputBindingDescription registry at www.khronos.org>
-data VkVertexInputBindingDescription = VkVertexInputBindingDescription## Addr##
-                                                                        ByteArray##
+type VkVertexInputBindingDescription =
+     VulkanStruct VkVertexInputBindingDescription' -- ' closing tick for hsc2hs
 
+data VkVertexInputBindingDescription' -- ' closing tick for hsc2hs
+
 instance Eq VkVertexInputBindingDescription where
-        (VkVertexInputBindingDescription## a _) ==
-          x@(VkVertexInputBindingDescription## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkVertexInputBindingDescription where
-        (VkVertexInputBindingDescription## a _) `compare`
-          x@(VkVertexInputBindingDescription## b _) = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -274,20 +256,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkVertexInputBindingDescription where
-        unsafeAddr (VkVertexInputBindingDescription## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkVertexInputBindingDescription## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkVertexInputBindingDescription##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkVertexInputBindingDescription where
         type StructFields VkVertexInputBindingDescription =
              '["binding", "stride", "inputRate"] -- ' closing tick for hsc2hs
@@ -415,20 +383,18 @@
 --   > } VkVertexInputBindingDivisorDescriptionEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkVertexInputBindingDivisorDescriptionEXT VkVertexInputBindingDivisorDescriptionEXT registry at www.khronos.org>
-data VkVertexInputBindingDivisorDescriptionEXT = VkVertexInputBindingDivisorDescriptionEXT## Addr##
-                                                                                            ByteArray##
+type VkVertexInputBindingDivisorDescriptionEXT =
+     VulkanStruct VkVertexInputBindingDivisorDescriptionEXT' -- ' closing tick for hsc2hs
 
+data VkVertexInputBindingDivisorDescriptionEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkVertexInputBindingDivisorDescriptionEXT where
-        (VkVertexInputBindingDivisorDescriptionEXT## a _) ==
-          x@(VkVertexInputBindingDivisorDescriptionEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkVertexInputBindingDivisorDescriptionEXT where
-        (VkVertexInputBindingDivisorDescriptionEXT## a _) `compare`
-          x@(VkVertexInputBindingDivisorDescriptionEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -447,23 +413,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkVertexInputBindingDivisorDescriptionEXT
-         where
-        unsafeAddr (VkVertexInputBindingDivisorDescriptionEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkVertexInputBindingDivisorDescriptionEXT## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkVertexInputBindingDivisorDescriptionEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkVertexInputBindingDivisorDescriptionEXT
          where
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc
@@ -8,16 +8,14 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.Viewport
-       (VkViewport(..), VkViewportSwizzleNV(..), VkViewportWScalingNV(..))
+       (VkViewport, VkViewport', VkViewportSwizzleNV, -- ' closing tick for hsc2hs
+        VkViewportSwizzleNV', VkViewportWScalingNV, VkViewportWScalingNV')
        where
-import           Foreign.Storable                                       (Storable (..))
-import           GHC.Base                                               (Addr##, ByteArray##,
-                                                                         byteArrayContents##,
-                                                                         plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.ViewportCoordinateSwizzleNV (VkViewportCoordinateSwizzleNV)
-import           System.IO.Unsafe                                       (unsafeDupablePerformIO)
+import Foreign.Storable                                       (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.ViewportCoordinateSwizzleNV (VkViewportCoordinateSwizzleNV)
+import System.IO.Unsafe                                       (unsafeDupablePerformIO)
 
 -- | > typedef struct VkViewport {
 --   >     float          x;
@@ -29,17 +27,17 @@
 --   > } VkViewport;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkViewport VkViewport registry at www.khronos.org>
-data VkViewport = VkViewport## Addr## ByteArray##
+type VkViewport = VulkanStruct VkViewport' -- ' closing tick for hsc2hs
 
+data VkViewport' -- ' closing tick for hsc2hs
+
 instance Eq VkViewport where
-        (VkViewport## a _) == x@(VkViewport## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkViewport where
-        (VkViewport## a _) `compare` x@(VkViewport## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -57,18 +55,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkViewport where
-        unsafeAddr (VkViewport## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkViewport## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkViewport## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkViewport where
         type StructFields VkViewport =
              '["x", "y", "width", "height", "minDepth", "maxDepth"] -- ' closing tick for hsc2hs
@@ -273,17 +259,17 @@
 --   > } VkViewportSwizzleNV;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkViewportSwizzleNV VkViewportSwizzleNV registry at www.khronos.org>
-data VkViewportSwizzleNV = VkViewportSwizzleNV## Addr## ByteArray##
+type VkViewportSwizzleNV = VulkanStruct VkViewportSwizzleNV' -- ' closing tick for hsc2hs
 
+data VkViewportSwizzleNV' -- ' closing tick for hsc2hs
+
 instance Eq VkViewportSwizzleNV where
-        (VkViewportSwizzleNV## a _) == x@(VkViewportSwizzleNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkViewportSwizzleNV where
-        (VkViewportSwizzleNV## a _) `compare` x@(VkViewportSwizzleNV## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -301,18 +287,6 @@
 
         {-# INLINE poke #-}
 
-instance VulkanMarshalPrim VkViewportSwizzleNV where
-        unsafeAddr (VkViewportSwizzleNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkViewportSwizzleNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkViewportSwizzleNV## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
 instance VulkanMarshal VkViewportSwizzleNV where
         type StructFields VkViewportSwizzleNV = '["x", "y", "z", "w"] -- ' closing tick for hsc2hs
         type CUnionType VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
@@ -463,17 +437,17 @@
 --   > } VkViewportWScalingNV;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkViewportWScalingNV VkViewportWScalingNV registry at www.khronos.org>
-data VkViewportWScalingNV = VkViewportWScalingNV## Addr## ByteArray##
+type VkViewportWScalingNV = VulkanStruct VkViewportWScalingNV' -- ' closing tick for hsc2hs
 
+data VkViewportWScalingNV' -- ' closing tick for hsc2hs
+
 instance Eq VkViewportWScalingNV where
-        (VkViewportWScalingNV## a _) == x@(VkViewportWScalingNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkViewportWScalingNV where
-        (VkViewportWScalingNV## a _) `compare` x@(VkViewportWScalingNV## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -490,18 +464,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkViewportWScalingNV where
-        unsafeAddr (VkViewportWScalingNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkViewportWScalingNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkViewportWScalingNV## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkViewportWScalingNV where
         type StructFields VkViewportWScalingNV = '["xcoeff", "ycoeff"] -- ' closing tick for hsc2hs
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc b/src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc
@@ -8,20 +8,16 @@
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
 module Graphics.Vulkan.Types.Struct.WriteDescriptorSet
-       (VkWriteDescriptorSet(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Base                                 (Addr##, ByteArray##,
-                                                           byteArrayContents##,
-                                                           plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.Descriptor    (VkDescriptorType)
-import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles            (VkBufferView,
-                                                           VkDescriptorSet)
-import           Graphics.Vulkan.Types.Struct.Descriptor  (VkDescriptorBufferInfo,
-                                                           VkDescriptorImageInfo)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+       (VkWriteDescriptorSet, VkWriteDescriptorSet') where -- ' closing tick for hsc2hs
+import Foreign.Storable                         (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.Enum.Descriptor    (VkDescriptorType)
+import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import Graphics.Vulkan.Types.Handles            (VkBufferView, VkDescriptorSet)
+import Graphics.Vulkan.Types.Struct.Descriptor  (VkDescriptorBufferInfo,
+                                                 VkDescriptorImageInfo)
+import System.IO.Unsafe                         (unsafeDupablePerformIO)
 
 -- | > typedef struct VkWriteDescriptorSet {
 --   >     VkStructureType sType;
@@ -37,17 +33,17 @@
 --   > } VkWriteDescriptorSet;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkWriteDescriptorSet VkWriteDescriptorSet registry at www.khronos.org>
-data VkWriteDescriptorSet = VkWriteDescriptorSet## Addr## ByteArray##
+type VkWriteDescriptorSet = VulkanStruct VkWriteDescriptorSet' -- ' closing tick for hsc2hs
 
+data VkWriteDescriptorSet' -- ' closing tick for hsc2hs
+
 instance Eq VkWriteDescriptorSet where
-        (VkWriteDescriptorSet## a _) == x@(VkWriteDescriptorSet## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkWriteDescriptorSet where
-        (VkWriteDescriptorSet## a _) `compare` x@(VkWriteDescriptorSet## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -64,18 +60,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkWriteDescriptorSet where
-        unsafeAddr (VkWriteDescriptorSet## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkWriteDescriptorSet## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkWriteDescriptorSet## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkWriteDescriptorSet where
         type StructFields VkWriteDescriptorSet =
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/XYColorEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/XYColorEXT.hsc
--- a/src-gen/Graphics/Vulkan/Types/Struct/XYColorEXT.hsc
+++ b/src-gen/Graphics/Vulkan/Types/Struct/XYColorEXT.hsc
@@ -7,15 +7,12 @@
 {-# LANGUAGE Strict                #-}
 {-# LANGUAGE TypeApplications      #-}
 {-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.XYColorEXT (VkXYColorEXT(..))
-       where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Base                         (Addr##, ByteArray##,
-                                                   byteArrayContents##,
-                                                   plusAddr##)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+module Graphics.Vulkan.Types.Struct.XYColorEXT
+       (VkXYColorEXT, VkXYColorEXT') where -- ' closing tick for hsc2hs
+import Foreign.Storable                 (Storable (..))
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import System.IO.Unsafe                 (unsafeDupablePerformIO)
 
 -- | Chromaticity coordinate
 --
@@ -25,17 +22,17 @@
 --   > } VkXYColorEXT;
 --
 --   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkXYColorEXT VkXYColorEXT registry at www.khronos.org>
-data VkXYColorEXT = VkXYColorEXT## Addr## ByteArray##
+type VkXYColorEXT = VulkanStruct VkXYColorEXT' -- ' closing tick for hsc2hs
 
+data VkXYColorEXT' -- ' closing tick for hsc2hs
+
 instance Eq VkXYColorEXT where
-        (VkXYColorEXT## a _) == x@(VkXYColorEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
+        a == b = EQ == cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE (==) #-}
 
 instance Ord VkXYColorEXT where
-        (VkXYColorEXT## a _) `compare` x@(VkXYColorEXT## b _)
-          = cmpBytes## (sizeOf x) a b
+        compare a b = cmpBytes## (sizeOf a) (unsafeAddr a) (unsafeAddr b)
 
         {-# INLINE compare #-}
 
@@ -52,18 +49,6 @@
         poke = pokeVkData##
 
         {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkXYColorEXT where
-        unsafeAddr (VkXYColorEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkXYColorEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkXYColorEXT## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
 
 instance VulkanMarshal VkXYColorEXT where
         type StructFields VkXYColorEXT = '["x", "y"] -- ' closing tick for hsc2hs
diff --git a/src/Graphics/Vulkan/Marshal.hs b/src/Graphics/Vulkan/Marshal.hs
--- a/src/Graphics/Vulkan/Marshal.hs
+++ b/src/Graphics/Vulkan/Marshal.hs
@@ -25,7 +25,7 @@
 --   Instead, it is hand-written to provide common types and classes.
 module Graphics.Vulkan.Marshal
   ( FlagType (..), FlagMask, FlagBit
-  , VulkanMarshal (..), VulkanMarshalPrim ()
+  , VulkanMarshal (..)
   , VulkanPtr (..)
   , VkPtr (..)
   , pattern VK_NULL_HANDLE, pattern VK_NULL
@@ -48,29 +48,27 @@
   , cmpCStrings, cmpCStringsN
   ) where
 
-import           Data.Data                        (Data)
-import           Data.Int                         (Int16, Int32, Int64, Int8)
-import           Data.Kind                        (Constraint, Type)
-import           Data.Void                        (Void)
-import           Data.Word                        (Word16, Word32, Word64,
-                                                   Word8)
-import           Foreign.C.String                 (CString, peekCString)
-import           Foreign.C.Types                  (CChar (..), CWchar (..), CInt (..), CSize (..), CULong (..))
-import           Foreign.ForeignPtr               (ForeignPtr,
-                                                   addForeignPtrFinalizer,
-                                                   mallocForeignPtr,
-                                                   withForeignPtr)
-import           Foreign.Marshal.Array            (pokeArray0)
-import           Foreign.Marshal.Utils            (fillBytes)
-import           Foreign.Ptr                      (FunPtr, nullPtr, plusPtr)
-import           Foreign.Storable                 (Storable (sizeOf))
-import           GHC.Exts                         (Proxy#, proxy#)
-import           GHC.Generics                     (Generic)
-import           GHC.Ptr                          (Ptr (..))
-import           GHC.TypeLits
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+import Data.Data             (Data)
+import Data.Int              (Int16, Int32, Int64, Int8)
+import Data.Kind             (Constraint, Type)
+import Data.Void             (Void)
+import Data.Word             (Word16, Word32, Word64, Word8)
+import Foreign.C.String      (CString, peekCString)
+import Foreign.C.Types       (CChar (..), CInt (..), CSize (..), CULong (..),
+                              CWchar (..))
+import Foreign.ForeignPtr    (ForeignPtr, addForeignPtrFinalizer,
+                              mallocForeignPtr, withForeignPtr)
+import Foreign.Marshal.Array (pokeArray0)
+import Foreign.Marshal.Utils (fillBytes)
+import Foreign.Ptr           (FunPtr, nullPtr, plusPtr)
+import Foreign.Storable      (Storable (sizeOf))
+import GHC.Exts              (Proxy#, proxy#)
+import GHC.Generics          (Generic)
+import GHC.Ptr               (Ptr (..))
+import GHC.TypeLits
+import System.IO.Unsafe      (unsafeDupablePerformIO)
 
-import           Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Marshal.Internal
 
 
 -- | Distinguish single bits and bitmasks in vulkan flags
@@ -107,7 +105,7 @@
   --
   --   Note, the memory is managed by GHC, thus no need for freeing it manually.
   newVkData :: (Ptr a -> IO ()) -> IO a
-  default newVkData :: (Storable a, VulkanMarshalPrim a)
+  default newVkData :: (Storable a, a ~ VulkanStruct b)
                     => (Ptr a -> IO ()) -> IO a
   newVkData = newVkData#
   {-# INLINE newVkData #-}
@@ -119,7 +117,7 @@
   --
   --   Note, the memory is managed by GHC, thus no need for freeing it manually.
   mallocVkData :: IO a
-  default mallocVkData :: (Storable a, VulkanMarshalPrim a) => IO a
+  default mallocVkData :: (Storable a, a ~ VulkanStruct b) => IO a
   mallocVkData = mallocVkData#
   {-# INLINE mallocVkData #-}
   -- | Allocate a pinned aligned byte array to keep vulkan data structures.
@@ -139,7 +137,7 @@
   --
   --   Note, the memory is managed by GHC, thus no need for freeing it manually.
   mallocVkDataArray :: Int -> IO (Ptr a, [a])
-  default mallocVkDataArray :: (Storable a, VulkanMarshalPrim a)
+  default mallocVkDataArray :: (Storable a, a ~ VulkanStruct b)
                             => Int -> IO (Ptr a, [a])
   mallocVkDataArray = mallocVkDataArray#
   {-# INLINE mallocVkDataArray #-}
@@ -148,7 +146,7 @@
   --   Structures created with newVkData are stored in pinned byte arrays,
   --   so their memory is maintained by Haskell GC.
   unsafePtr  :: a -> Ptr a
-  default unsafePtr :: VulkanMarshalPrim a => a -> Ptr a
+  default unsafePtr :: a ~ VulkanStruct b => a -> Ptr a
   unsafePtr a = Ptr (unsafeAddr a)
   {-# INLINE unsafePtr #-}
   -- | Get vulkan structure referenced by a 'ForeignPtr' trying to avoid copying data.
@@ -163,13 +161,13 @@
   --   Thus, if all references to original `ForeignPtr` are lost,
   --     its attached finalizers may run even if the created structure is alive.
   fromForeignPtr :: ForeignPtr a -> IO a
-  default fromForeignPtr :: (Storable a, VulkanMarshalPrim a)
-                         => ForeignPtr a -> IO a
+  default fromForeignPtr :: (Storable a, a ~ VulkanStruct b)
+                         => ForeignPtr a-> IO a
   fromForeignPtr = fromForeignPtr#
   {-# INLINE fromForeignPtr #-}
   -- | Create a `ForeignPtr` referencing the structure without copying data.
   toForeignPtr :: a -> IO (ForeignPtr a)
-  default toForeignPtr :: VulkanMarshalPrim a => a -> IO (ForeignPtr a)
+  default toForeignPtr :: a ~ VulkanStruct b => a -> IO (ForeignPtr a)
   toForeignPtr = toForeignPtr#
   {-# INLINE toForeignPtr #-}
   -- | Create a `ForeignPtr` referencing the structure without copying data.
@@ -180,12 +178,12 @@
   -- Attempts to add a finalizer to a ForeignPtr created this way, or to
   -- finalize such a pointer, will throw an exception.
   toPlainForeignPtr :: a -> IO (ForeignPtr a)
-  default toPlainForeignPtr :: VulkanMarshalPrim a => a -> IO (ForeignPtr a)
+  default toPlainForeignPtr :: a ~ VulkanStruct b => a -> IO (ForeignPtr a)
   toPlainForeignPtr = toPlainForeignPtr#
   {-# INLINE toPlainForeignPtr #-}
   -- | Make sure this data is alive at a given point in a sequence of IO actions.
   touchVkData  :: a -> IO ()
-  default touchVkData :: VulkanMarshalPrim a => a -> IO ()
+  default touchVkData :: a ~ VulkanStruct b => a -> IO ()
   touchVkData = touchVkData#
   {-# INLINE touchVkData #-}
 
diff --git a/src/Graphics/Vulkan/Marshal/Create.hs b/src/Graphics/Vulkan/Marshal/Create.hs
--- a/src/Graphics/Vulkan/Marshal/Create.hs
+++ b/src/Graphics/Vulkan/Marshal/Create.hs
@@ -29,28 +29,26 @@
     , unsafeIOCreate
     ) where
 
-import           Data.Coerce
-import           Data.Kind                        (Constraint, Type)
-import           Data.Type.Bool                   (If, type (||))
-import           Data.Type.Equality               (type (==))
-import           Foreign.C.String                 (newCString)
-import           Foreign.C.Types                  (CChar)
-import           Foreign.Marshal.Alloc            (finalizerFree, free)
-import           Foreign.Marshal.Array            (newArray, pokeArray0)
-import           Foreign.Ptr                      (nullPtr, plusPtr)
-import           Foreign.Storable                 (Storable)
-import           GHC.Base                         (ByteArray#, IO (..),
-                                                   RealWorld, State#, Weak#,
-                                                   addCFinalizerToWeak#,
-                                                   mkWeak#, mkWeakNoFinalizer#,
-                                                   nullAddr#)
-import           GHC.Ptr                          (FunPtr (..), Ptr (..))
-import           GHC.TypeLits
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+import Data.Coerce
+import Data.Kind             (Constraint, Type)
+import Data.Type.Bool        (If, type (||))
+import Data.Type.Equality    (type (==))
+import Foreign.C.String      (newCString)
+import Foreign.C.Types       (CChar)
+import Foreign.Marshal.Alloc (finalizerFree, free)
+import Foreign.Marshal.Array (newArray, pokeArray0)
+import Foreign.Ptr           (nullPtr, plusPtr)
+import Foreign.Storable      (Storable)
+import GHC.Base              (ByteArray#, IO (..), RealWorld, State#, Weak#,
+                              addCFinalizerToWeak#, mkWeak#, mkWeakNoFinalizer#,
+                              nullAddr#)
+import GHC.Ptr               (FunPtr (..), Ptr (..))
+import GHC.TypeLits
+import System.IO.Unsafe      (unsafeDupablePerformIO)
 
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes  (VkBool32)
+import Graphics.Vulkan.Marshal
+import Graphics.Vulkan.Marshal.Internal
+import Graphics.Vulkan.Types.BaseTypes  (VkBool32)
 
 
 -- | Safely fill-in a new vulkan structure
@@ -104,9 +102,11 @@
 --     with a set of haskell and C finalizers.
 --   These finalizers make sure all `malloc`ed memory is released and
 --    no managed memory gets purged too early.
-createVk :: ( VulkanMarshal x, VulkanMarshalPrim x
-            , HandleRemFields x fs
-            ) => CreateVkStruct x fs () -> x
+createVk :: forall a fs b .
+            ( VulkanMarshal a
+            , HandleRemFields a fs
+            , a ~ VulkanStruct b
+            ) => CreateVkStruct a fs () -> a
 createVk a = unsafeDupablePerformIO $ do
     x <- mallocVkData
     withPtr x $ \xptr -> do
diff --git a/src/Graphics/Vulkan/Marshal/Internal.hs b/src/Graphics/Vulkan/Marshal/Internal.hs
--- a/src/Graphics/Vulkan/Marshal/Internal.hs
+++ b/src/Graphics/Vulkan/Marshal/Internal.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE ExistentialQuantification #-}
+{-# LANGUAGE FlexibleContexts          #-}
 {-# LANGUAGE MagicHash                 #-}
 {-# LANGUAGE ScopedTypeVariables       #-}
 {-# LANGUAGE Strict                    #-}
@@ -11,7 +12,7 @@
 --   This is an internal module; it can change a lot between package versions;
 --   it provides low-level functions, most of which have user-friendly analogues.
 module Graphics.Vulkan.Marshal.Internal
-  ( VulkanMarshalPrim (..)
+  ( VulkanStruct (..), unsafeFromByteArrayOffset
   , fromForeignPtr#
   , toForeignPtr#, toPlainForeignPtr#
   , touchVkData#
@@ -21,46 +22,52 @@
   , peekVkData#, pokeVkData#
   ) where
 
-import           Foreign.C.Types    (CInt (..), CSize (..))
-import           Foreign.ForeignPtr (ForeignPtr, newForeignPtr_)
-import           Foreign.Storable   (Storable (..))
-import           GHC.Base           (Addr#, ByteArray#, IO (..), Int (..), Int#,
-                                     byteArrayContents#, copyAddrToByteArray#,
-                                     eqAddr#, isTrue#, minusAddr#,
-                                     newAlignedPinnedByteArray#, touch#,
-                                     unsafeCoerce#, unsafeFreezeByteArray#,
-                                     (*#), (+#), (>=#))
-import           GHC.Ptr            (Ptr (..))
+import Foreign.C.Types    (CInt (..), CSize (..))
+import Foreign.ForeignPtr (ForeignPtr, newForeignPtr_)
+import Foreign.Storable   (Storable (..))
+import GHC.Base           (Addr#, ByteArray#, IO (..), Int (..), Int#,
+                           byteArrayContents#, copyAddrToByteArray#, eqAddr#,
+                           isTrue#, minusAddr#, newAlignedPinnedByteArray#,
+                           plusAddr#, touch#, unsafeCoerce#,
+                           unsafeFreezeByteArray#, (*#), (+#), (>=#))
+import GHC.Ptr            (Ptr (..))
 
-import           GHC.ForeignPtr     (ForeignPtr (..), ForeignPtrContents (..))
+import GHC.ForeignPtr (ForeignPtr (..), ForeignPtrContents (..))
 
 
--- | This class gives low-level access to memory location occupied by Vulkan data.
---
---   Meant for internal use only.
-class VulkanMarshalPrim a where
-  -- | Get address of vulkan structure.
-  --   Note, the address is only valid as long as a given vulkan structure exists.
-  --   Structures created with newVkData are stored in pinned byte arrays,
-  --   so their memory is maintained by Haskell GC.
-  unsafeAddr :: a -> Addr#
-  -- | Get a @ByteArray#@ that keeps the data.
-  --
-  --   Note, the data structure does not necessarily starts at zero offset.
-  unsafeByteArray :: a -> ByteArray#
-  -- | Combine a vulkan structure from ByteArray and an offset in this array.
-  unsafeFromByteArrayOffset :: Int# -> ByteArray# -> a
 
+{- | Internal representation of all Vulkan structures:
+     a pinned byte array and an address pointing to an area in this array.
+ -}
+data VulkanStruct a = VulkanStruct
+  { unsafeAddr      :: Addr#
+    -- ^ Get address of vulkan structure.
+    --   Note, the address is only valid as long as a given vulkan structure exists.
+    --   Structures created with newVkData are stored in pinned byte arrays,
+    --   so their memory is maintained by Haskell GC.
+  , unsafeByteArray :: ByteArray#
+    -- ^ Get a @ByteArray#@ that keeps the data.
+    --
+    --   Note, the data structure does not necessarily starts at zero offset.
+  }
 
 
+-- | Combine a vulkan structure from ByteArray and an offset in this array.
+unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VulkanStruct a
+unsafeFromByteArrayOffset off b
+  = VulkanStruct (plusAddr# (byteArrayContents# b) off) b
+{-# INLINE unsafeFromByteArrayOffset #-}
 
+
+
+
 -- | Create a `ByteArray#`-based type from `ForeignPtr`.
 --   Try to not copy data, but do it if necessary.
-fromForeignPtr# :: forall a . (Storable a, VulkanMarshalPrim a)
-                => ForeignPtr a -> IO a
+fromForeignPtr# :: forall a . Storable (VulkanStruct a)
+                => ForeignPtr (VulkanStruct a) -> IO (VulkanStruct a)
 fromForeignPtr# (ForeignPtr addr PlainForeignPtr{})
-  | I# n <- sizeOf (undefined :: a)
-  , I# a <- alignment (undefined :: a)
+  | I# n <- sizeOf (undefined :: (VulkanStruct a))
+  , I# a <- alignment (undefined :: (VulkanStruct a))
   = IO
   (\s0 -> case newAlignedPinnedByteArray# n a s0 of
     (# s1, mba #) -> case copyAddrToByteArray# addr mba 0# n s1 of
@@ -83,7 +90,7 @@
 
 
 -- | Create a `ForeignPtr` referencing the structure without copying data.
-toForeignPtr# :: VulkanMarshalPrim a => a -> IO (ForeignPtr a)
+toForeignPtr# :: VulkanStruct a -> IO (ForeignPtr (VulkanStruct a))
 toForeignPtr# x
   | a <- unsafeAddr x
   , b <- unsafeByteArray x = do
@@ -99,25 +106,22 @@
 -- @toPlainForeignPtr@.
 -- Attempts to add a finalizer to a ForeignPtr created this way, or to
 -- finalize such a pointer, will throw an exception.
-toPlainForeignPtr# :: VulkanMarshalPrim a => a -> IO (ForeignPtr a)
-toPlainForeignPtr# x
-  | a <- unsafeAddr x
-  , b <- unsafeByteArray x = IO
+toPlainForeignPtr# :: VulkanStruct a -> IO (ForeignPtr (VulkanStruct a))
+toPlainForeignPtr# (VulkanStruct a b) = IO
     (\s -> (# s, ForeignPtr a (PlainPtr (unsafeCoerce# b)) #))
 {-# INLINE toPlainForeignPtr# #-}
 
 -- | Make sure the region of memory is not collected at this moment in time.
-touchVkData# :: VulkanMarshalPrim a => a -> IO ()
-touchVkData# a = IO (\s -> (# touch# (unsafeByteArray a) s, () #))
+touchVkData# :: VulkanStruct a -> IO ()
+touchVkData# (VulkanStruct _ b) = IO (\s -> (# touch# b s, () #))
 {-# INLINE touchVkData# #-}
 
 
-newVkData# :: forall a
-            . (Storable a, VulkanMarshalPrim a)
-           => (Ptr a -> IO ()) -> IO a
+newVkData# :: forall a . Storable (VulkanStruct a)
+           => (Ptr (VulkanStruct a) -> IO ()) -> IO (VulkanStruct a)
 newVkData# f
-  | I# n <- sizeOf (undefined :: a)
-  , I# a <- alignment (undefined :: a)
+  | I# n <- sizeOf (undefined :: (VulkanStruct a))
+  , I# a <- alignment (undefined :: (VulkanStruct a))
   = IO
   (\s0 -> case newAlignedPinnedByteArray# n a s0 of
     (# s1, mba #) -> case unsafeFreezeByteArray# mba s1 of
@@ -127,12 +131,10 @@
   )
 {-# INLINE newVkData# #-}
 
-mallocVkData# :: forall a
-             . (Storable a, VulkanMarshalPrim a)
-            => IO a
+mallocVkData# :: forall a . Storable (VulkanStruct a) => IO (VulkanStruct a)
 mallocVkData#
-  | I# n <- sizeOf (undefined :: a)
-  , I# a <- alignment (undefined :: a)
+  | I# n <- sizeOf (undefined :: (VulkanStruct a))
+  , I# a <- alignment (undefined :: (VulkanStruct a))
   = IO
   (\s0 -> case newAlignedPinnedByteArray# n a s0 of
     (# s1, mba #) -> case unsafeFreezeByteArray# mba s1 of
@@ -140,12 +142,11 @@
   )
 {-# INLINE mallocVkData# #-}
 
-mallocVkDataArray# :: forall a
-                    . (Storable a, VulkanMarshalPrim a)
-                   => Int -> IO (Ptr a, [a])
+mallocVkDataArray# :: forall a . Storable (VulkanStruct a)
+                   => Int -> IO (Ptr (VulkanStruct a), [(VulkanStruct a)])
 mallocVkDataArray# (I# m)
-  | I# n <- sizeOf (undefined :: a)
-  , I# a <- alignment (undefined :: a)
+  | I# n <- sizeOf (undefined :: (VulkanStruct a))
+  , I# a <- alignment (undefined :: (VulkanStruct a))
   , nm <- n *# m
   = IO
   (\s0 -> case newAlignedPinnedByteArray# nm a s0 of
@@ -163,12 +164,11 @@
 {-# INLINE mallocVkDataArray# #-}
 
 
-peekVkData# :: forall a
-             . (Storable a, VulkanMarshalPrim a)
-            => Ptr a -> IO a
+peekVkData# :: forall a . (Storable (VulkanStruct a))
+            => Ptr (VulkanStruct a) -> IO (VulkanStruct a)
 peekVkData# (Ptr addr)
-  | I# n <- sizeOf (undefined :: a)
-  , I# a <- alignment (undefined :: a)
+  | I# n <- sizeOf (undefined :: (VulkanStruct a))
+  , I# a <- alignment (undefined :: (VulkanStruct a))
   = IO
   (\s -> case newAlignedPinnedByteArray# n a s of
     (# s1, mba #) -> case copyAddrToByteArray# addr mba 0# n s1 of
@@ -177,9 +177,8 @@
   )
 {-# INLINE peekVkData# #-}
 
-pokeVkData# :: forall a
-             . (Storable a, VulkanMarshalPrim a)
-            => Ptr a -> a -> IO ()
+pokeVkData# :: forall a . Storable (VulkanStruct a)
+            => Ptr (VulkanStruct a) -> (VulkanStruct a) -> IO ()
 pokeVkData# (Ptr addr) x
   = c_memcpy addr (unsafeAddr x) (fromIntegral $ sizeOf x)
 {-# INLINE pokeVkData# #-}
diff --git a/vulkan-api.cabal b/vulkan-api.cabal
--- a/vulkan-api.cabal
+++ b/vulkan-api.cabal
@@ -3,7 +3,7 @@
 -- it is autogenerated at genvulkan/src/Write/Cabal.hs
 --
 name:                vulkan-api
-version:             1.1.4.0
+version:             1.2.0.0
 synopsis:            Low-level low-overhead vulkan api bindings
 description:
     Haskell bindings for vulkan api as described in vk.xml.
@@ -439,7 +439,7 @@
     build-depends:
         base >= 4.9 && < 5
     default-language:    Haskell2010
-    ghc-options:         -Wall
+    ghc-options:         -Wall -fno-warn-duplicate-exports
     include-dirs:        include
     c-sources:           cbits/vulkan_loader.c
     if flag(useNativeFFI-1-0) || flag(useNativeFFI-1-1)
