{-# language CPP #-}
-- No documentation found for Chapter "Extends"
module Vulkan.CStruct.Extends  ( BaseOutStructure(..)
                               , BaseInStructure(..)
                               , Extends
                               , PeekChain(..)
                               , PokeChain(..)
                               , Chain
                               , Extendss
                               , SomeStruct(..)
                               , extendSomeStruct
                               , withSomeStruct
                               , withSomeCStruct
                               , peekSomeCStruct
                               , pokeSomeCStruct
                               , forgetExtensions
                               , Extensible(..)
                               , pattern (::&)
                               , pattern (:&)
                               ) where

import Data.Maybe (fromMaybe)
import Type.Reflection (typeRep)
import Foreign.Marshal.Alloc (allocaBytes)
import GHC.Base (join)
import GHC.IO (throwIO)
import GHC.Ptr (castPtr)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import Control.Monad.Trans.Class (lift)
import Control.Monad.Trans.Cont (evalContT)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero(..))
import Data.Proxy (Proxy(Proxy))
import Data.Typeable (Typeable)
import Foreign.Storable (Storable)
import Foreign.Storable (Storable(peek))
import Foreign.Storable (Storable(poke))
import qualified Foreign.Storable (Storable(..))
import GHC.Generics (Generic)
import GHC.IO.Exception (IOErrorType(..))
import GHC.IO.Exception (IOException(..))
import Foreign.Ptr (Ptr)
import GHC.TypeLits (ErrorMessage(..))
import GHC.TypeLits (TypeError)
import Data.Kind (Constraint)
import Data.Kind (Type)
import Control.Monad.Trans.Cont (ContT(..))
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AabbPositionsKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureBuildGeometryInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureBuildRangeInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureBuildSizesInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureCreateInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (AccelerationStructureCreateInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureDeviceAddressInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureGeometryAabbsDataKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureGeometryInstancesDataKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureGeometryKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (AccelerationStructureGeometryMotionTrianglesDataNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureGeometryTrianglesDataKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (AccelerationStructureInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureInstanceKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (AccelerationStructureMatrixMotionInstanceNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (AccelerationStructureMemoryRequirementsInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (AccelerationStructureMotionInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (AccelerationStructureMotionInstanceNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (AccelerationStructureSRTMotionInstanceNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureVersionInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (AcquireNextImageInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (AcquireProfilingLockInfoKHR)
import {-# SOURCE #-} Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (AndroidHardwareBufferFormatProperties2ANDROID)
import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (AndroidHardwareBufferFormatPropertiesANDROID)
import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (AndroidHardwareBufferPropertiesANDROID)
import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (AndroidHardwareBufferUsageANDROID)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_android_surface (AndroidSurfaceCreateInfoKHR)
import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (ApplicationInfo)
import {-# SOURCE #-} Vulkan.Core10.Pass (AttachmentDescription)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (AttachmentDescription2)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts (AttachmentDescriptionStencilLayout)
import {-# SOURCE #-} Vulkan.Core10.Pass (AttachmentReference)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (AttachmentReference2)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts (AttachmentReferenceStencilLayout)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (AttachmentSampleCountInfoAMD)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (AttachmentSampleLocationsEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (BindAccelerationStructureMemoryInfoNV)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2 (BindBufferMemoryDeviceGroupInfo)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2 (BindBufferMemoryInfo)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2 (BindImageMemoryDeviceGroupInfo)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2 (BindImageMemoryInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (BindImageMemorySwapchainInfoKHR)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (BindImagePlaneMemoryInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (BindIndexBufferIndirectCommandNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (BindShaderGroupIndirectCommandNV)
import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (BindSparseInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (BindVertexBufferIndirectCommandNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (BlitImageInfo2KHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferCollectionBufferCreateInfoFUCHSIA)
import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferCollectionConstraintsInfoFUCHSIA)
import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferCollectionCreateInfoFUCHSIA)
import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferCollectionImageCreateInfoFUCHSIA)
import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferCollectionPropertiesFUCHSIA)
import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferConstraintsInfoFUCHSIA)
import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (BufferCopy)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (BufferCopy2KHR)
import {-# SOURCE #-} Vulkan.Core10.Buffer (BufferCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_buffer_device_address (BufferDeviceAddressCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (BufferDeviceAddressInfo)
import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (BufferImageCopy)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (BufferImageCopy2KHR)
import {-# SOURCE #-} Vulkan.Core10.OtherTypes (BufferMemoryBarrier)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (BufferMemoryBarrier2KHR)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (BufferMemoryRequirementsInfo2)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (BufferOpaqueCaptureAddressCreateInfo)
import {-# SOURCE #-} Vulkan.Core10.BufferView (BufferViewCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_calibrated_timestamps (CalibratedTimestampInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (CheckpointData2NV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints (CheckpointDataNV)
import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ClearAttachment)
import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ClearDepthStencilValue)
import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ClearRect)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (CoarseSampleLocationNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (CoarseSampleOrderCustomNV)
import {-# SOURCE #-} Vulkan.Core10.CommandBuffer (CommandBufferAllocateInfo)
import {-# SOURCE #-} Vulkan.Core10.CommandBuffer (CommandBufferBeginInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (CommandBufferInheritanceConditionalRenderingInfoEXT)
import {-# SOURCE #-} Vulkan.Core10.CommandBuffer (CommandBufferInheritanceInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_render_pass_transform (CommandBufferInheritanceRenderPassTransformInfoQCOM)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (CommandBufferInheritanceRenderingInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (CommandBufferInheritanceViewportScissorInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (CommandBufferSubmitInfoKHR)
import {-# SOURCE #-} Vulkan.Core10.CommandPool (CommandPoolCreateInfo)
import {-# SOURCE #-} Vulkan.Core10.ImageView (ComponentMapping)
import {-# SOURCE #-} Vulkan.Core10.Pipeline (ComputePipelineCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (ConditionalRenderingBeginInfoEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_driver_properties (ConformanceVersion)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (CooperativeMatrixPropertiesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyAccelerationStructureInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyAccelerationStructureToMemoryInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyBufferInfo2KHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyBufferToImageInfo2KHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_rotated_copy_commands (CopyCommandTransformInfoQCOM)
import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (CopyDescriptorSet)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageInfo2KHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageToBufferInfo2KHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyMemoryToAccelerationStructureInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuFunctionCreateInfoNVX)
import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuLaunchInfoNVX)
import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuModuleCreateInfoNVX)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (D3D12FenceSubmitInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_marker (DebugMarkerMarkerInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_marker (DebugMarkerObjectNameInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_marker (DebugMarkerObjectTagInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_report (DebugReportCallbackCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_utils (DebugUtilsLabelEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_utils (DebugUtilsMessengerCallbackDataEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_utils (DebugUtilsMessengerCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_utils (DebugUtilsObjectNameInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_utils (DebugUtilsObjectTagInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation (DedicatedAllocationBufferCreateInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation (DedicatedAllocationImageCreateInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation (DedicatedAllocationMemoryAllocateInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (DependencyInfoKHR)
import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorBufferInfo)
import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorImageInfo)
import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorPoolCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (DescriptorPoolInlineUniformBlockCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorPoolSize)
import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorSetAllocateInfo)
import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorSetLayoutBinding)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (DescriptorSetLayoutBindingFlagsCreateInfo)
import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorSetLayoutCreateInfo)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance3 (DescriptorSetLayoutSupport)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (DescriptorSetVariableDescriptorCountAllocateInfo)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (DescriptorSetVariableDescriptorCountLayoutSupport)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template (DescriptorUpdateTemplateCreateInfo)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template (DescriptorUpdateTemplateEntry)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (DeviceBufferMemoryRequirementsKHR)
import {-# SOURCE #-} Vulkan.Core10.Device (DeviceCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (DeviceDeviceMemoryReportCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostics_config (DeviceDiagnosticsConfigCreateInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_control (DeviceEventInfoEXT)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (DeviceGroupBindSparseInfo)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (DeviceGroupCommandBufferBeginInfo)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation (DeviceGroupDeviceCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (DeviceGroupPresentCapabilitiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (DeviceGroupPresentInfoKHR)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (DeviceGroupRenderPassBeginInfo)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (DeviceGroupSubmitInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (DeviceGroupSwapchainCreateInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (DeviceImageMemoryRequirementsKHR)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (DeviceMemoryOpaqueCaptureAddressInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_memory_overallocation_behavior (DeviceMemoryOverallocationCreateInfoAMD)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (DeviceMemoryReportCallbackDataEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (DevicePrivateDataCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Core10.Device (DeviceQueueCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_global_priority (DeviceQueueGlobalPriorityCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (DeviceQueueInfo2)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_directfb_surface (DirectFBSurfaceCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Core10.OtherTypes (DispatchIndirectCommand)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_control (DisplayEventInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display (DisplayModeCreateInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display (DisplayModeParametersKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_display_properties2 (DisplayModeProperties2KHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display (DisplayModePropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_display_native_hdr (DisplayNativeHdrSurfaceCapabilitiesAMD)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_display_properties2 (DisplayPlaneCapabilities2KHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display (DisplayPlaneCapabilitiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_display_properties2 (DisplayPlaneInfo2KHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_display_properties2 (DisplayPlaneProperties2KHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display (DisplayPlanePropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_control (DisplayPowerInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display_swapchain (DisplayPresentInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_display_properties2 (DisplayProperties2KHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display (DisplayPropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display (DisplaySurfaceCreateInfoKHR)
import {-# SOURCE #-} Vulkan.Core10.OtherTypes (DrawIndexedIndirectCommand)
import {-# SOURCE #-} Vulkan.Core10.OtherTypes (DrawIndirectCommand)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_mesh_shader (DrawMeshTasksIndirectCommandNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (DrmFormatModifierProperties2EXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (DrmFormatModifierPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (DrmFormatModifierPropertiesList2EXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (DrmFormatModifierPropertiesListEXT)
import {-# SOURCE #-} Vulkan.Core10.Event (EventCreateInfo)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_fence (ExportFenceCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_fence_win32 (ExportFenceWin32HandleInfoKHR)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory (ExportMemoryAllocateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory (ExportMemoryAllocateInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (ExportMemoryWin32HandleInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_win32 (ExportMemoryWin32HandleInfoNV)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore (ExportSemaphoreCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (ExportSemaphoreWin32HandleInfoKHR)
import {-# SOURCE #-} Vulkan.Core10.ExtensionDiscovery (ExtensionProperties)
import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Extent2D)
import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Extent3D)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (ExternalBufferProperties)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities (ExternalFenceProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (ExternalFormatANDROID)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (ExternalImageFormatProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_capabilities (ExternalImageFormatPropertiesNV)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory (ExternalMemoryBufferCreateInfo)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory (ExternalMemoryImageCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory (ExternalMemoryImageCreateInfoNV)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (ExternalMemoryProperties)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities (ExternalSemaphoreProperties)
import {-# SOURCE #-} Vulkan.Core10.Fence (FenceCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_fence_fd (FenceGetFdInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_fence_win32 (FenceGetWin32HandleInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_filter_cubic (FilterCubicImageViewImageFormatPropertiesEXT)
import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (FormatProperties)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (FormatProperties2)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_format_feature_flags2 (FormatProperties3KHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (FragmentShadingRateAttachmentInfoKHR)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (FramebufferAttachmentImageInfo)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (FramebufferAttachmentsCreateInfo)
import {-# SOURCE #-} Vulkan.Core10.Pass (FramebufferCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (FramebufferMixedSamplesCombinationNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GeneratedCommandsInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GeneratedCommandsMemoryRequirementsInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (GeometryAABBNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (GeometryDataNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (GeometryNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (GeometryTrianglesNV)
import {-# SOURCE #-} Vulkan.Core10.Pipeline (GraphicsPipelineCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GraphicsPipelineShaderGroupsCreateInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GraphicsShaderGroupCreateInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_hdr_metadata (HdrMetadataEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_headless_surface (HeadlessSurfaceCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_MVK_ios_surface (IOSSurfaceCreateInfoMVK)
import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageBlit)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (ImageBlit2KHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (ImageConstraintsInfoFUCHSIA)
import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageCopy)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (ImageCopy2KHR)
import {-# SOURCE #-} Vulkan.Core10.Image (ImageCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (ImageDrmFormatModifierExplicitCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (ImageDrmFormatModifierListCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (ImageDrmFormatModifierPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (ImageFormatConstraintsInfoFUCHSIA)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_image_format_list (ImageFormatListCreateInfo)
import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (ImageFormatProperties)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (ImageFormatProperties2)
import {-# SOURCE #-} Vulkan.Core10.OtherTypes (ImageMemoryBarrier)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (ImageMemoryBarrier2KHR)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (ImageMemoryRequirementsInfo2)
import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface (ImagePipeSurfaceCreateInfoFUCHSIA)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (ImagePlaneMemoryRequirementsInfo)
import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageResolve)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (ImageResolve2KHR)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (ImageSparseMemoryRequirementsInfo2)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage (ImageStencilUsageCreateInfo)
import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (ImageSubresource)
import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageSubresourceLayers)
import {-# SOURCE #-} Vulkan.Core10.ImageView (ImageSubresourceRange)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (ImageSwapchainCreateInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_astc_decode_mode (ImageViewASTCDecodeModeEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_image_view_handle (ImageViewAddressPropertiesNVX)
import {-# SOURCE #-} Vulkan.Core10.ImageView (ImageViewCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_image_view_handle (ImageViewHandleInfoNVX)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_view_min_lod (ImageViewMinLodCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (ImageViewUsageCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (ImportAndroidHardwareBufferInfoANDROID)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_fence_fd (ImportFenceFdInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_fence_win32 (ImportFenceWin32HandleInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (ImportMemoryBufferCollectionFUCHSIA)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_fd (ImportMemoryFdInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (ImportMemoryHostPointerInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (ImportMemoryWin32HandleInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_win32 (ImportMemoryWin32HandleInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (ImportMemoryZirconHandleInfoFUCHSIA)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_fd (ImportSemaphoreFdInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (ImportSemaphoreWin32HandleInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_semaphore (ImportSemaphoreZirconHandleInfoFUCHSIA)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsLayoutCreateInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsLayoutTokenNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsStreamNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_performance_query (InitializePerformanceApiInfoINTEL)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (InputAttachmentAspectReference)
import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (InstanceCreateInfo)
import {-# SOURCE #-} Vulkan.Core10.LayerDiscovery (LayerProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_MVK_macos_surface (MacOSSurfaceCreateInfoMVK)
import {-# SOURCE #-} Vulkan.Core10.Memory (MappedMemoryRange)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (MemoryAllocateFlagsInfo)
import {-# SOURCE #-} Vulkan.Core10.Memory (MemoryAllocateInfo)
import {-# SOURCE #-} Vulkan.Core10.OtherTypes (MemoryBarrier)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (MemoryBarrier2KHR)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation (MemoryDedicatedAllocateInfo)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation (MemoryDedicatedRequirements)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_fd (MemoryFdPropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (MemoryGetAndroidHardwareBufferInfoANDROID)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_fd (MemoryGetFdInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_rdma (MemoryGetRemoteAddressInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (MemoryGetWin32HandleInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (MemoryGetZirconHandleInfoFUCHSIA)
import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (MemoryHeap)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (MemoryHostPointerPropertiesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (MemoryOpaqueCaptureAddressAllocateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (MemoryPriorityAllocateInfoEXT)
import {-# SOURCE #-} Vulkan.Core10.MemoryManagement (MemoryRequirements)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (MemoryRequirements2)
import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (MemoryType)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (MemoryWin32HandlePropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (MemoryZirconHandlePropertiesFUCHSIA)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_surface (MetalSurfaceCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multi_draw (MultiDrawIndexedInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multi_draw (MultiDrawInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (MultisamplePropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (MultiviewPerViewAttributesInfoNVX)
import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (MutableDescriptorTypeCreateInfoVALVE)
import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (MutableDescriptorTypeListVALVE)
import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Offset2D)
import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Offset3D)
import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (PastPresentationTimingGOOGLE)
import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_performance_query (PerformanceConfigurationAcquireInfoINTEL)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PerformanceCounterDescriptionKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PerformanceCounterKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_performance_query (PerformanceMarkerInfoINTEL)
import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_performance_query (PerformanceOverrideInfoINTEL)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PerformanceQuerySubmitInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_performance_query (PerformanceStreamMarkerInfoINTEL)
import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_performance_query (PerformanceValueINTEL)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_16bit_storage (PhysicalDevice16BitStorageFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_4444_formats (PhysicalDevice4444FormatsFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_8bit_storage (PhysicalDevice8BitStorageFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_astc_decode_mode (PhysicalDeviceASTCDecodeFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalDeviceAccelerationStructureFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalDeviceAccelerationStructurePropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_border_color_swizzle (PhysicalDeviceBorderColorSwizzleFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_device_coherent_memory (PhysicalDeviceCoherentMemoryFeaturesAMD)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PhysicalDeviceColorWriteEnableFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (PhysicalDeviceConditionalRenderingFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (PhysicalDeviceConservativeRasterizationPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixPropertiesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_corner_sampled_image (PhysicalDeviceCornerSampledImageFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PhysicalDeviceCoverageReductionModeFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing (PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PhysicalDeviceDepthClipEnableFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve (PhysicalDeviceDepthStencilResolveProperties)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (PhysicalDeviceDescriptorIndexingFeatures)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (PhysicalDeviceDescriptorIndexingProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsPropertiesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (PhysicalDeviceDeviceMemoryReportFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostics_config (PhysicalDeviceDiagnosticsConfigFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (PhysicalDeviceDiscardRectanglePropertiesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_driver_properties (PhysicalDeviceDriverProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_physical_device_drm (PhysicalDeviceDrmPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceExternalBufferInfo)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities (PhysicalDeviceExternalFenceInfo)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceExternalImageFormatInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (PhysicalDeviceExternalMemoryHostPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_rdma (PhysicalDeviceExternalMemoryRDMAFeaturesNV)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities (PhysicalDeviceExternalSemaphoreInfo)
import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceFeatures2)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls (PhysicalDeviceFloatControlsProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map2 (PhysicalDeviceFragmentDensityMap2FeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map2 (PhysicalDeviceFragmentDensityMap2PropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_shader_interlock (PhysicalDeviceFragmentShaderInterlockFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PhysicalDeviceFragmentShadingRateEnumsFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PhysicalDeviceFragmentShadingRateEnumsPropertiesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRatePropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_global_priority_query (PhysicalDeviceGlobalPriorityQueryFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation (PhysicalDeviceGroupProperties)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceIDProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (PhysicalDeviceImageDrmFormatModifierInfoEXT)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceImageFormatInfo2)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_filter_cubic (PhysicalDeviceImageViewImageFormatInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_view_min_lod (PhysicalDeviceImageViewMinLodFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (PhysicalDeviceImagelessFramebufferFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_index_type_uint8 (PhysicalDeviceIndexTypeUint8FeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (PhysicalDeviceInheritedViewportScissorFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI)
import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceLimits)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationPropertiesEXT)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance3 (PhysicalDeviceMaintenance3Properties)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (PhysicalDeviceMaintenance4FeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (PhysicalDeviceMaintenance4PropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_budget (PhysicalDeviceMemoryBudgetPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (PhysicalDeviceMemoryPriorityFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceMemoryProperties)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceMemoryProperties2)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_mesh_shader (PhysicalDeviceMeshShaderFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_mesh_shader (PhysicalDeviceMeshShaderPropertiesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multi_draw (PhysicalDeviceMultiDrawFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multi_draw (PhysicalDeviceMultiDrawPropertiesEXT)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_multiview_per_view_attributes (PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (PhysicalDeviceMutableDescriptorTypeFeaturesVALVE)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pci_bus_info (PhysicalDevicePCIBusInfoPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pageable_device_local_memory (PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryPropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PhysicalDevicePipelineExecutablePropertiesFeaturesKHR)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PhysicalDevicePointClippingProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetPropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PhysicalDevicePresentIdFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_wait (PhysicalDevicePresentWaitFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_primitive_topology_list_restart (PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PhysicalDevicePrivateDataFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceProperties)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceProperties2)
import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryFeatures)
import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PhysicalDeviceProvokingVertexFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PhysicalDeviceProvokingVertexPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_push_descriptor (PhysicalDevicePushDescriptorPropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_rgba10x6_formats (PhysicalDeviceRGBA10X6FormatsFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (PhysicalDeviceRayTracingMotionBlurFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelinePropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (PhysicalDeviceRayTracingPropertiesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PhysicalDeviceRepresentativeFragmentTestFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2FeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2PropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (PhysicalDeviceSampleLocationsPropertiesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax (PhysicalDeviceSamplerFilterMinmaxProperties)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (PhysicalDeviceSamplerYcbcrConversionFeatures)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout (PhysicalDeviceScalarBlockLayoutFeatures)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts (PhysicalDeviceSeparateDepthStencilLayoutsFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64 (PhysicalDeviceShaderAtomicInt64Features)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_clock (PhysicalDeviceShaderClockFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_core_properties2 (PhysicalDeviceShaderCoreProperties2AMD)
import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_core_properties (PhysicalDeviceShaderCorePropertiesAMD)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8 (PhysicalDeviceShaderFloat16Int8Features)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductPropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsPropertiesNV)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types (PhysicalDeviceShaderSubgroupExtendedTypesFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow (PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_terminate_invocation (PhysicalDeviceShaderTerminateInvocationFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImageFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImagePropertiesNV)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceSparseImageFormatInfo2)
import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceSparseProperties)
import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup (PhysicalDeviceSubgroupProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingFeaturesHUAWEI)
import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingPropertiesHUAWEI)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_surface_capabilities2 (PhysicalDeviceSurfaceInfo2KHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (PhysicalDeviceSynchronization2FeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (PhysicalDeviceTimelineSemaphoreFeatures)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (PhysicalDeviceTimelineSemaphoreProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_tooling_info (PhysicalDeviceToolPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackPropertiesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout (PhysicalDeviceUniformBufferStandardLayoutFeatures)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers (PhysicalDeviceVariablePointersFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (PhysicalDeviceVertexInputDynamicStateFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features)
import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Properties)
import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features)
import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Properties)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats (PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR)
import {-# SOURCE #-} Vulkan.Core10.PipelineCache (PipelineCacheCreateInfo)
import {-# SOURCE #-} Vulkan.Core10.OtherTypes (PipelineCacheHeaderVersionOne)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PipelineColorBlendAdvancedStateCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineColorBlendAttachmentState)
import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineColorBlendStateCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PipelineColorWriteCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_pipeline_compiler_control (PipelineCompilerControlCreateInfoAMD)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (PipelineCoverageModulationStateCreateInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PipelineCoverageReductionStateCreateInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_coverage_to_color (PipelineCoverageToColorStateCreateInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackEXT)
import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineDepthStencilStateCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (PipelineDiscardRectangleStateCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineDynamicStateCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutableInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutableInternalRepresentationKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutablePropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutableStatisticKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PipelineFragmentShadingRateEnumStateCreateInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PipelineFragmentShadingRateStateCreateInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineInfoKHR)
import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineInputAssemblyStateCreateInfo)
import {-# SOURCE #-} Vulkan.Core10.PipelineLayout (PipelineLayoutCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_library (PipelineLibraryCreateInfoKHR)
import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineMultisampleStateCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (PipelineRasterizationConservativeStateCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PipelineRasterizationDepthClipStateCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PipelineRasterizationLineStateCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PipelineRasterizationProvokingVertexStateCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineRasterizationStateCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_rasterization_order (PipelineRasterizationStateRasterizationOrderAMD)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PipelineRasterizationStateStreamCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (PipelineRenderingCreateInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PipelineRepresentativeFragmentTestStateCreateInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (PipelineSampleLocationsStateCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineShaderStageCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PipelineTessellationDomainOriginStateCreateInfo)
import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineTessellationStateCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineVertexInputStateCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PipelineViewportCoarseSampleOrderStateCreateInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PipelineViewportExclusiveScissorStateCreateInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PipelineViewportShadingRateImageStateCreateInfoNV)
import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineViewportStateCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_viewport_swizzle (PipelineViewportSwizzleStateCreateInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_clip_space_w_scaling (PipelineViewportWScalingStateCreateInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_GGP_frame_token (PresentFrameTokenGGP)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PresentIdKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (PresentInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_incremental_present (PresentRegionKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_incremental_present (PresentRegionsKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (PresentTimeGOOGLE)
import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (PresentTimesInfoGOOGLE)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PrivateDataSlotCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (ProtectedSubmitInfo)
import {-# SOURCE #-} Vulkan.Core10.PipelineLayout (PushConstantRange)
import {-# SOURCE #-} Vulkan.Core10.Query (QueryPoolCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (QueryPoolPerformanceCreateInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_performance_query (QueryPoolPerformanceQueryCreateInfoINTEL)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (QueueFamilyCheckpointProperties2NV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints (QueueFamilyCheckpointPropertiesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_global_priority_query (QueueFamilyGlobalPriorityPropertiesEXT)
import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (QueueFamilyProperties)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (QueueFamilyProperties2)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (RayTracingPipelineCreateInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (RayTracingPipelineCreateInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (RayTracingPipelineInterfaceCreateInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (RayTracingShaderGroupCreateInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (RayTracingShaderGroupCreateInfoNV)
import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Rect2D)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_incremental_present (RectLayerKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (RefreshCycleDurationGOOGLE)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (RenderPassAttachmentBeginInfo)
import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (RenderPassBeginInfo)
import {-# SOURCE #-} Vulkan.Core10.Pass (RenderPassCreateInfo)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (RenderPassCreateInfo2)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (RenderPassFragmentDensityMapCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (RenderPassInputAttachmentAspectCreateInfo)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (RenderPassMultiviewCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (RenderPassSampleLocationsBeginInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_render_pass_transform (RenderPassTransformBeginInfoQCOM)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingAttachmentInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentDensityMapAttachmentInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentShadingRateAttachmentInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (ResolveImageInfo2KHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (SRTDataNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationsInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_border_color_swizzle (SamplerBorderColorComponentMappingCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Core10.Sampler (SamplerCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (SamplerCustomBorderColorCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax (SamplerReductionModeCreateInfo)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionCreateInfo)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionImageFormatProperties)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_screen_surface (ScreenSurfaceCreateInfoQNX)
import {-# SOURCE #-} Vulkan.Core10.QueueSemaphore (SemaphoreCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_fd (SemaphoreGetFdInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (SemaphoreGetWin32HandleInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_semaphore (SemaphoreGetZirconHandleInfoFUCHSIA)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreSignalInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (SemaphoreSubmitInfoKHR)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreTypeCreateInfo)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreWaitInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (SetStateFlagsIndirectCommandNV)
import {-# SOURCE #-} Vulkan.Core10.Shader (ShaderModuleCreateInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_cache (ShaderModuleValidationCacheCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_info (ShaderResourceUsageAMD)
import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_info (ShaderStatisticsInfoAMD)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (ShadingRatePaletteNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shared_presentable_image (SharedPresentSurfaceCapabilitiesKHR)
import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (SparseBufferMemoryBindInfo)
import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (SparseImageFormatProperties)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (SparseImageFormatProperties2)
import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (SparseImageMemoryBind)
import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (SparseImageMemoryBindInfo)
import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (SparseImageMemoryRequirements)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (SparseImageMemoryRequirements2)
import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (SparseImageOpaqueMemoryBindInfo)
import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (SparseMemoryBind)
import {-# SOURCE #-} Vulkan.Core10.Pipeline (SpecializationInfo)
import {-# SOURCE #-} Vulkan.Core10.Pipeline (SpecializationMapEntry)
import {-# SOURCE #-} Vulkan.Core10.Pipeline (StencilOpState)
import {-# SOURCE #-} Vulkan.Extensions.VK_GGP_stream_descriptor_surface (StreamDescriptorSurfaceCreateInfoGGP)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (StridedDeviceAddressRegionKHR)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Core10.Enums.StructureType (StructureType(..))
import {-# SOURCE #-} Vulkan.Core10.Queue (SubmitInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (SubmitInfo2KHR)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (SubpassBeginInfo)
import {-# SOURCE #-} Vulkan.Core10.Pass (SubpassDependency)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (SubpassDependency2)
import {-# SOURCE #-} Vulkan.Core10.Pass (SubpassDescription)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (SubpassDescription2)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve (SubpassDescriptionDepthStencilResolve)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (SubpassEndInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SubpassSampleLocationsEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (SubpassShadingPipelineCreateInfoHUAWEI)
import {-# SOURCE #-} Vulkan.Core10.Image (SubresourceLayout)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_surface_counter (SurfaceCapabilities2EXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_surface_capabilities2 (SurfaceCapabilities2KHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_full_screen_exclusive (SurfaceCapabilitiesFullScreenExclusiveEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_surface (SurfaceCapabilitiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_surface_capabilities2 (SurfaceFormat2KHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_surface (SurfaceFormatKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_full_screen_exclusive (SurfaceFullScreenExclusiveInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_full_screen_exclusive (SurfaceFullScreenExclusiveWin32InfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_surface_protected_capabilities (SurfaceProtectedCapabilitiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_control (SwapchainCounterCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (SwapchainCreateInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_display_native_hdr (SwapchainDisplayNativeHdrCreateInfoAMD)
import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (SysmemColorSpaceFUCHSIA)
import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_texture_gather_bias_lod (TextureLODGatherFormatPropertiesAMD)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (TimelineSemaphoreSubmitInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (TraceRaysIndirectCommandKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (TransformMatrixKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_cache (ValidationCacheCreateInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_features (ValidationFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_flags (ValidationFlagsEXT)
import {-# SOURCE #-} Vulkan.Core10.Pipeline (VertexInputAttributeDescription)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (VertexInputAttributeDescription2EXT)
import {-# SOURCE #-} Vulkan.Core10.Pipeline (VertexInputBindingDescription)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (VertexInputBindingDescription2EXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (VertexInputBindingDivisorDescriptionEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NN_vi_surface (ViSurfaceCreateInfoNN)
import {-# SOURCE #-} Vulkan.Core10.Pipeline (Viewport)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_viewport_swizzle (ViewportSwizzleNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_clip_space_w_scaling (ViewportWScalingNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_wayland_surface (WaylandSurfaceCreateInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_win32_keyed_mutex (Win32KeyedMutexAcquireReleaseInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_win32_keyed_mutex (Win32KeyedMutexAcquireReleaseInfoNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_win32_surface (Win32SurfaceCreateInfoKHR)
import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (WriteDescriptorSet)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (WriteDescriptorSetAccelerationStructureKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (WriteDescriptorSetAccelerationStructureNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (WriteDescriptorSetInlineUniformBlockEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_hdr_metadata (XYColorEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xcb_surface (XcbSurfaceCreateInfoKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xlib_surface (XlibSurfaceCreateInfoKHR)
-- | VkBaseOutStructure - Base structure for a read-only pointer chain
--
-- = Description
--
-- 'BaseOutStructure' can be used to facilitate iterating through a
-- structure pointer chain that returns data back to the application.
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'BaseOutStructure', 'Vulkan.Core10.Enums.StructureType.StructureType'
data BaseOutStructure = BaseOutStructure
  { -- | @sType@ is the structure type of the structure being iterated through.
    BaseOutStructure -> StructureType
sType :: StructureType
  , -- | @pNext@ is @NULL@ or a pointer to the next structure in a structure
    -- chain.
    BaseOutStructure -> Ptr BaseOutStructure
next :: Ptr BaseOutStructure
  }
  deriving (Typeable, BaseOutStructure -> BaseOutStructure -> Bool
(BaseOutStructure -> BaseOutStructure -> Bool)
-> (BaseOutStructure -> BaseOutStructure -> Bool)
-> Eq BaseOutStructure
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BaseOutStructure -> BaseOutStructure -> Bool
$c/= :: BaseOutStructure -> BaseOutStructure -> Bool
== :: BaseOutStructure -> BaseOutStructure -> Bool
$c== :: BaseOutStructure -> BaseOutStructure -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (BaseOutStructure)
#endif
deriving instance Show BaseOutStructure

instance ToCStruct BaseOutStructure where
  withCStruct :: BaseOutStructure -> (Ptr BaseOutStructure -> IO b) -> IO b
withCStruct BaseOutStructure
x Ptr BaseOutStructure -> IO b
f = Int -> (Ptr BaseOutStructure -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
16 ((Ptr BaseOutStructure -> IO b) -> IO b)
-> (Ptr BaseOutStructure -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr BaseOutStructure
p -> Ptr BaseOutStructure -> BaseOutStructure -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr BaseOutStructure
p BaseOutStructure
x (Ptr BaseOutStructure -> IO b
f Ptr BaseOutStructure
p)
  pokeCStruct :: Ptr BaseOutStructure -> BaseOutStructure -> IO b -> IO b
pokeCStruct Ptr BaseOutStructure
p BaseOutStructure{Ptr BaseOutStructure
StructureType
next :: Ptr BaseOutStructure
sType :: StructureType
$sel:next:BaseOutStructure :: BaseOutStructure -> Ptr BaseOutStructure
$sel:sType:BaseOutStructure :: BaseOutStructure -> StructureType
..} IO b
f = do
    Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BaseOutStructure
p Ptr BaseOutStructure -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
sType)
    Ptr (Ptr BaseOutStructure) -> Ptr BaseOutStructure -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BaseOutStructure
p Ptr BaseOutStructure -> Int -> Ptr (Ptr BaseOutStructure)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr BaseOutStructure))) (Ptr BaseOutStructure
next)
    IO b
f
  cStructSize :: Int
cStructSize = Int
16
  cStructAlignment :: Int
cStructAlignment = Int
8
  pokeZeroCStruct :: Ptr BaseOutStructure -> IO b -> IO b
pokeZeroCStruct Ptr BaseOutStructure
p IO b
f = do
    Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BaseOutStructure
p Ptr BaseOutStructure -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
forall a. Zero a => a
zero)
    IO b
f

instance FromCStruct BaseOutStructure where
  peekCStruct :: Ptr BaseOutStructure -> IO BaseOutStructure
peekCStruct Ptr BaseOutStructure
p = do
    StructureType
sType <- Ptr StructureType -> IO StructureType
forall a. Storable a => Ptr a -> IO a
peek @StructureType ((Ptr BaseOutStructure
p Ptr BaseOutStructure -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType))
    Ptr BaseOutStructure
pNext <- Ptr (Ptr BaseOutStructure) -> IO (Ptr BaseOutStructure)
forall a. Storable a => Ptr a -> IO a
peek @(Ptr BaseOutStructure) ((Ptr BaseOutStructure
p Ptr BaseOutStructure -> Int -> Ptr (Ptr BaseOutStructure)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr BaseOutStructure)))
    BaseOutStructure -> IO BaseOutStructure
forall (f :: * -> *) a. Applicative f => a -> f a
pure (BaseOutStructure -> IO BaseOutStructure)
-> BaseOutStructure -> IO BaseOutStructure
forall a b. (a -> b) -> a -> b
$ StructureType -> Ptr BaseOutStructure -> BaseOutStructure
BaseOutStructure
             StructureType
sType Ptr BaseOutStructure
pNext

instance Storable BaseOutStructure where
  sizeOf :: BaseOutStructure -> Int
sizeOf ~BaseOutStructure
_ = Int
16
  alignment :: BaseOutStructure -> Int
alignment ~BaseOutStructure
_ = Int
8
  peek :: Ptr BaseOutStructure -> IO BaseOutStructure
peek = Ptr BaseOutStructure -> IO BaseOutStructure
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
  poke :: Ptr BaseOutStructure -> BaseOutStructure -> IO ()
poke Ptr BaseOutStructure
ptr BaseOutStructure
poked = Ptr BaseOutStructure -> BaseOutStructure -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr BaseOutStructure
ptr BaseOutStructure
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())

instance Zero BaseOutStructure where
  zero :: BaseOutStructure
zero = StructureType -> Ptr BaseOutStructure -> BaseOutStructure
BaseOutStructure
           StructureType
forall a. Zero a => a
zero
           Ptr BaseOutStructure
forall a. Zero a => a
zero


-- | VkBaseInStructure - Base structure for a read-only pointer chain
--
-- = Description
--
-- 'BaseInStructure' can be used to facilitate iterating through a
-- read-only structure pointer chain.
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'BaseInStructure', 'Vulkan.Core10.Enums.StructureType.StructureType'
data BaseInStructure = BaseInStructure
  { -- | @sType@ is the structure type of the structure being iterated through.
    BaseInStructure -> StructureType
sType :: StructureType
  , -- | @pNext@ is @NULL@ or a pointer to the next structure in a structure
    -- chain.
    BaseInStructure -> Ptr BaseInStructure
next :: Ptr BaseInStructure
  }
  deriving (Typeable, BaseInStructure -> BaseInStructure -> Bool
(BaseInStructure -> BaseInStructure -> Bool)
-> (BaseInStructure -> BaseInStructure -> Bool)
-> Eq BaseInStructure
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BaseInStructure -> BaseInStructure -> Bool
$c/= :: BaseInStructure -> BaseInStructure -> Bool
== :: BaseInStructure -> BaseInStructure -> Bool
$c== :: BaseInStructure -> BaseInStructure -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (BaseInStructure)
#endif
deriving instance Show BaseInStructure

instance ToCStruct BaseInStructure where
  withCStruct :: BaseInStructure -> (Ptr BaseInStructure -> IO b) -> IO b
withCStruct BaseInStructure
x Ptr BaseInStructure -> IO b
f = Int -> (Ptr BaseInStructure -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
16 ((Ptr BaseInStructure -> IO b) -> IO b)
-> (Ptr BaseInStructure -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr BaseInStructure
p -> Ptr BaseInStructure -> BaseInStructure -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr BaseInStructure
p BaseInStructure
x (Ptr BaseInStructure -> IO b
f Ptr BaseInStructure
p)
  pokeCStruct :: Ptr BaseInStructure -> BaseInStructure -> IO b -> IO b
pokeCStruct Ptr BaseInStructure
p BaseInStructure{Ptr BaseInStructure
StructureType
next :: Ptr BaseInStructure
sType :: StructureType
$sel:next:BaseInStructure :: BaseInStructure -> Ptr BaseInStructure
$sel:sType:BaseInStructure :: BaseInStructure -> StructureType
..} IO b
f = do
    Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BaseInStructure
p Ptr BaseInStructure -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
sType)
    Ptr (Ptr BaseInStructure) -> Ptr BaseInStructure -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BaseInStructure
p Ptr BaseInStructure -> Int -> Ptr (Ptr BaseInStructure)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr BaseInStructure))) (Ptr BaseInStructure
next)
    IO b
f
  cStructSize :: Int
cStructSize = Int
16
  cStructAlignment :: Int
cStructAlignment = Int
8
  pokeZeroCStruct :: Ptr BaseInStructure -> IO b -> IO b
pokeZeroCStruct Ptr BaseInStructure
p IO b
f = do
    Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BaseInStructure
p Ptr BaseInStructure -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
forall a. Zero a => a
zero)
    IO b
f

instance FromCStruct BaseInStructure where
  peekCStruct :: Ptr BaseInStructure -> IO BaseInStructure
peekCStruct Ptr BaseInStructure
p = do
    StructureType
sType <- Ptr StructureType -> IO StructureType
forall a. Storable a => Ptr a -> IO a
peek @StructureType ((Ptr BaseInStructure
p Ptr BaseInStructure -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType))
    Ptr BaseInStructure
pNext <- Ptr (Ptr BaseInStructure) -> IO (Ptr BaseInStructure)
forall a. Storable a => Ptr a -> IO a
peek @(Ptr BaseInStructure) ((Ptr BaseInStructure
p Ptr BaseInStructure -> Int -> Ptr (Ptr BaseInStructure)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr BaseInStructure)))
    BaseInStructure -> IO BaseInStructure
forall (f :: * -> *) a. Applicative f => a -> f a
pure (BaseInStructure -> IO BaseInStructure)
-> BaseInStructure -> IO BaseInStructure
forall a b. (a -> b) -> a -> b
$ StructureType -> Ptr BaseInStructure -> BaseInStructure
BaseInStructure
             StructureType
sType Ptr BaseInStructure
pNext

instance Storable BaseInStructure where
  sizeOf :: BaseInStructure -> Int
sizeOf ~BaseInStructure
_ = Int
16
  alignment :: BaseInStructure -> Int
alignment ~BaseInStructure
_ = Int
8
  peek :: Ptr BaseInStructure -> IO BaseInStructure
peek = Ptr BaseInStructure -> IO BaseInStructure
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
  poke :: Ptr BaseInStructure -> BaseInStructure -> IO ()
poke Ptr BaseInStructure
ptr BaseInStructure
poked = Ptr BaseInStructure -> BaseInStructure -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr BaseInStructure
ptr BaseInStructure
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())

instance Zero BaseInStructure where
  zero :: BaseInStructure
zero = StructureType -> Ptr BaseInStructure -> BaseInStructure
BaseInStructure
           StructureType
forall a. Zero a => a
zero
           Ptr BaseInStructure
forall a. Zero a => a
zero


type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where
  Extends AccelerationStructureCreateInfoKHR AccelerationStructureMotionInfoNV = ()
  Extends AccelerationStructureGeometryTrianglesDataKHR AccelerationStructureGeometryMotionTrianglesDataNV = ()
  Extends AndroidHardwareBufferPropertiesANDROID AndroidHardwareBufferFormatPropertiesANDROID = ()
  Extends AndroidHardwareBufferPropertiesANDROID AndroidHardwareBufferFormatProperties2ANDROID = ()
  Extends AttachmentDescription2 AttachmentDescriptionStencilLayout = ()
  Extends AttachmentReference2 AttachmentReferenceStencilLayout = ()
  Extends BindBufferMemoryInfo BindBufferMemoryDeviceGroupInfo = ()
  Extends BindImageMemoryInfo BindImageMemoryDeviceGroupInfo = ()
  Extends BindImageMemoryInfo BindImageMemorySwapchainInfoKHR = ()
  Extends BindImageMemoryInfo BindImagePlaneMemoryInfo = ()
  Extends BindSparseInfo DeviceGroupBindSparseInfo = ()
  Extends BindSparseInfo TimelineSemaphoreSubmitInfo = ()
  Extends BufferCreateInfo DedicatedAllocationBufferCreateInfoNV = ()
  Extends BufferCreateInfo ExternalMemoryBufferCreateInfo = ()
  Extends BufferCreateInfo BufferOpaqueCaptureAddressCreateInfo = ()
  Extends BufferCreateInfo BufferDeviceAddressCreateInfoEXT = ()
  Extends BufferCreateInfo BufferCollectionBufferCreateInfoFUCHSIA = ()
  Extends BufferImageCopy2KHR CopyCommandTransformInfoQCOM = ()
  Extends CommandBufferBeginInfo DeviceGroupCommandBufferBeginInfo = ()
  Extends CommandBufferInheritanceInfo CommandBufferInheritanceConditionalRenderingInfoEXT = ()
  Extends CommandBufferInheritanceInfo CommandBufferInheritanceRenderPassTransformInfoQCOM = ()
  Extends CommandBufferInheritanceInfo CommandBufferInheritanceViewportScissorInfoNV = ()
  Extends CommandBufferInheritanceInfo CommandBufferInheritanceRenderingInfoKHR = ()
  Extends CommandBufferInheritanceInfo AttachmentSampleCountInfoAMD = ()
  Extends CommandBufferInheritanceInfo MultiviewPerViewAttributesInfoNVX = ()
  Extends ComputePipelineCreateInfo PipelineCreationFeedbackCreateInfoEXT = ()
  Extends ComputePipelineCreateInfo SubpassShadingPipelineCreateInfoHUAWEI = ()
  Extends ComputePipelineCreateInfo PipelineCompilerControlCreateInfoAMD = ()
  Extends DescriptorPoolCreateInfo DescriptorPoolInlineUniformBlockCreateInfoEXT = ()
  Extends DescriptorPoolCreateInfo MutableDescriptorTypeCreateInfoVALVE = ()
  Extends DescriptorSetAllocateInfo DescriptorSetVariableDescriptorCountAllocateInfo = ()
  Extends DescriptorSetLayoutCreateInfo DescriptorSetLayoutBindingFlagsCreateInfo = ()
  Extends DescriptorSetLayoutCreateInfo MutableDescriptorTypeCreateInfoVALVE = ()
  Extends DescriptorSetLayoutSupport DescriptorSetVariableDescriptorCountLayoutSupport = ()
  Extends DeviceCreateInfo PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = ()
  Extends DeviceCreateInfo DevicePrivateDataCreateInfoEXT = ()
  Extends DeviceCreateInfo PhysicalDevicePrivateDataFeaturesEXT = ()
  Extends DeviceCreateInfo (PhysicalDeviceFeatures2 '[]) = ()
  Extends DeviceCreateInfo PhysicalDeviceVariablePointersFeatures = ()
  Extends DeviceCreateInfo PhysicalDeviceMultiviewFeatures = ()
  Extends DeviceCreateInfo DeviceGroupDeviceCreateInfo = ()
  Extends DeviceCreateInfo PhysicalDevicePresentIdFeaturesKHR = ()
  Extends DeviceCreateInfo PhysicalDevicePresentWaitFeaturesKHR = ()
  Extends DeviceCreateInfo PhysicalDevice16BitStorageFeatures = ()
  Extends DeviceCreateInfo PhysicalDeviceShaderSubgroupExtendedTypesFeatures = ()
  Extends DeviceCreateInfo PhysicalDeviceSamplerYcbcrConversionFeatures = ()
  Extends DeviceCreateInfo PhysicalDeviceProtectedMemoryFeatures = ()
  Extends DeviceCreateInfo PhysicalDeviceBlendOperationAdvancedFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceMultiDrawFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceInlineUniformBlockFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceMaintenance4FeaturesKHR = ()
  Extends DeviceCreateInfo PhysicalDeviceShaderDrawParametersFeatures = ()
  Extends DeviceCreateInfo PhysicalDeviceShaderFloat16Int8Features = ()
  Extends DeviceCreateInfo PhysicalDeviceHostQueryResetFeatures = ()
  Extends DeviceCreateInfo PhysicalDeviceGlobalPriorityQueryFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceDeviceMemoryReportFeaturesEXT = ()
  Extends DeviceCreateInfo DeviceDeviceMemoryReportCreateInfoEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceDescriptorIndexingFeatures = ()
  Extends DeviceCreateInfo PhysicalDeviceTimelineSemaphoreFeatures = ()
  Extends DeviceCreateInfo PhysicalDevice8BitStorageFeatures = ()
  Extends DeviceCreateInfo PhysicalDeviceConditionalRenderingFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceVulkanMemoryModelFeatures = ()
  Extends DeviceCreateInfo PhysicalDeviceShaderAtomicInt64Features = ()
  Extends DeviceCreateInfo PhysicalDeviceShaderAtomicFloatFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceShaderAtomicFloat2FeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceVertexAttributeDivisorFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceASTCDecodeFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceTransformFeedbackFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceRepresentativeFragmentTestFeaturesNV = ()
  Extends DeviceCreateInfo PhysicalDeviceExclusiveScissorFeaturesNV = ()
  Extends DeviceCreateInfo PhysicalDeviceCornerSampledImageFeaturesNV = ()
  Extends DeviceCreateInfo PhysicalDeviceComputeShaderDerivativesFeaturesNV = ()
  Extends DeviceCreateInfo PhysicalDeviceFragmentShaderBarycentricFeaturesNV = ()
  Extends DeviceCreateInfo PhysicalDeviceShaderImageFootprintFeaturesNV = ()
  Extends DeviceCreateInfo PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = ()
  Extends DeviceCreateInfo PhysicalDeviceShadingRateImageFeaturesNV = ()
  Extends DeviceCreateInfo PhysicalDeviceInvocationMaskFeaturesHUAWEI = ()
  Extends DeviceCreateInfo PhysicalDeviceMeshShaderFeaturesNV = ()
  Extends DeviceCreateInfo PhysicalDeviceAccelerationStructureFeaturesKHR = ()
  Extends DeviceCreateInfo PhysicalDeviceRayTracingPipelineFeaturesKHR = ()
  Extends DeviceCreateInfo PhysicalDeviceRayQueryFeaturesKHR = ()
  Extends DeviceCreateInfo DeviceMemoryOverallocationCreateInfoAMD = ()
  Extends DeviceCreateInfo PhysicalDeviceFragmentDensityMapFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceFragmentDensityMap2FeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceScalarBlockLayoutFeatures = ()
  Extends DeviceCreateInfo PhysicalDeviceUniformBufferStandardLayoutFeatures = ()
  Extends DeviceCreateInfo PhysicalDeviceDepthClipEnableFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceMemoryPriorityFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceBufferDeviceAddressFeatures = ()
  Extends DeviceCreateInfo PhysicalDeviceBufferDeviceAddressFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceImagelessFramebufferFeatures = ()
  Extends DeviceCreateInfo PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceCooperativeMatrixFeaturesNV = ()
  Extends DeviceCreateInfo PhysicalDeviceYcbcrImageArraysFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDevicePerformanceQueryFeaturesKHR = ()
  Extends DeviceCreateInfo PhysicalDeviceCoverageReductionModeFeaturesNV = ()
  Extends DeviceCreateInfo PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = ()
  Extends DeviceCreateInfo PhysicalDeviceShaderClockFeaturesKHR = ()
  Extends DeviceCreateInfo PhysicalDeviceIndexTypeUint8FeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceShaderSMBuiltinsFeaturesNV = ()
  Extends DeviceCreateInfo PhysicalDeviceFragmentShaderInterlockFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceSeparateDepthStencilLayoutsFeatures = ()
  Extends DeviceCreateInfo PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDevicePipelineExecutablePropertiesFeaturesKHR = ()
  Extends DeviceCreateInfo PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceTexelBufferAlignmentFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceSubgroupSizeControlFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceLineRasterizationFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDevicePipelineCreationCacheControlFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceVulkan11Features = ()
  Extends DeviceCreateInfo PhysicalDeviceVulkan12Features = ()
  Extends DeviceCreateInfo PhysicalDeviceCoherentMemoryFeaturesAMD = ()
  Extends DeviceCreateInfo PhysicalDeviceCustomBorderColorFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceBorderColorSwizzleFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceExtendedDynamicStateFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceExtendedDynamicState2FeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceDiagnosticsConfigFeaturesNV = ()
  Extends DeviceCreateInfo DeviceDiagnosticsConfigCreateInfoNV = ()
  Extends DeviceCreateInfo PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = ()
  Extends DeviceCreateInfo PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = ()
  Extends DeviceCreateInfo PhysicalDeviceRobustness2FeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceImageRobustnessFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = ()
  Extends DeviceCreateInfo PhysicalDevicePortabilitySubsetFeaturesKHR = ()
  Extends DeviceCreateInfo PhysicalDevice4444FormatsFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceSubpassShadingFeaturesHUAWEI = ()
  Extends DeviceCreateInfo PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateFeaturesKHR = ()
  Extends DeviceCreateInfo PhysicalDeviceShaderTerminateInvocationFeaturesKHR = ()
  Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = ()
  Extends DeviceCreateInfo PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = ()
  Extends DeviceCreateInfo PhysicalDeviceVertexInputDynamicStateFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceExternalMemoryRDMAFeaturesNV = ()
  Extends DeviceCreateInfo PhysicalDeviceColorWriteEnableFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceSynchronization2FeaturesKHR = ()
  Extends DeviceCreateInfo PhysicalDeviceInheritedViewportScissorFeaturesNV = ()
  Extends DeviceCreateInfo PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceProvokingVertexFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceShaderIntegerDotProductFeaturesKHR = ()
  Extends DeviceCreateInfo PhysicalDeviceRayTracingMotionBlurFeaturesNV = ()
  Extends DeviceCreateInfo PhysicalDeviceRGBA10X6FormatsFeaturesEXT = ()
  Extends DeviceCreateInfo PhysicalDeviceDynamicRenderingFeaturesKHR = ()
  Extends DeviceCreateInfo PhysicalDeviceImageViewMinLodFeaturesEXT = ()
  Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoEXT = ()
  Extends FenceCreateInfo ExportFenceCreateInfo = ()
  Extends FenceCreateInfo ExportFenceWin32HandleInfoKHR = ()
  Extends FormatProperties2 DrmFormatModifierPropertiesListEXT = ()
  Extends FormatProperties2 FormatProperties3KHR = ()
  Extends FormatProperties2 DrmFormatModifierPropertiesList2EXT = ()
  Extends FramebufferCreateInfo FramebufferAttachmentsCreateInfo = ()
  Extends GraphicsPipelineCreateInfo GraphicsPipelineShaderGroupsCreateInfoNV = ()
  Extends GraphicsPipelineCreateInfo PipelineDiscardRectangleStateCreateInfoEXT = ()
  Extends GraphicsPipelineCreateInfo PipelineRepresentativeFragmentTestStateCreateInfoNV = ()
  Extends GraphicsPipelineCreateInfo PipelineCreationFeedbackCreateInfoEXT = ()
  Extends GraphicsPipelineCreateInfo PipelineCompilerControlCreateInfoAMD = ()
  Extends GraphicsPipelineCreateInfo PipelineFragmentShadingRateStateCreateInfoKHR = ()
  Extends GraphicsPipelineCreateInfo PipelineFragmentShadingRateEnumStateCreateInfoNV = ()
  Extends GraphicsPipelineCreateInfo PipelineRenderingCreateInfoKHR = ()
  Extends GraphicsPipelineCreateInfo AttachmentSampleCountInfoAMD = ()
  Extends GraphicsPipelineCreateInfo MultiviewPerViewAttributesInfoNVX = ()
  Extends ImageBlit2KHR CopyCommandTransformInfoQCOM = ()
  Extends ImageCreateInfo DedicatedAllocationImageCreateInfoNV = ()
  Extends ImageCreateInfo ExternalMemoryImageCreateInfoNV = ()
  Extends ImageCreateInfo ExternalMemoryImageCreateInfo = ()
  Extends ImageCreateInfo ImageSwapchainCreateInfoKHR = ()
  Extends ImageCreateInfo ImageFormatListCreateInfo = ()
  Extends ImageCreateInfo ExternalFormatANDROID = ()
  Extends ImageCreateInfo ImageDrmFormatModifierListCreateInfoEXT = ()
  Extends ImageCreateInfo ImageDrmFormatModifierExplicitCreateInfoEXT = ()
  Extends ImageCreateInfo ImageStencilUsageCreateInfo = ()
  Extends ImageCreateInfo BufferCollectionImageCreateInfoFUCHSIA = ()
  Extends ImageFormatProperties2 ExternalImageFormatProperties = ()
  Extends ImageFormatProperties2 SamplerYcbcrConversionImageFormatProperties = ()
  Extends ImageFormatProperties2 TextureLODGatherFormatPropertiesAMD = ()
  Extends ImageFormatProperties2 AndroidHardwareBufferUsageANDROID = ()
  Extends ImageFormatProperties2 FilterCubicImageViewImageFormatPropertiesEXT = ()
  Extends ImageMemoryBarrier SampleLocationsInfoEXT = ()
  Extends ImageMemoryBarrier2KHR SampleLocationsInfoEXT = ()
  Extends ImageMemoryRequirementsInfo2 ImagePlaneMemoryRequirementsInfo = ()
  Extends ImageViewCreateInfo ImageViewUsageCreateInfo = ()
  Extends ImageViewCreateInfo SamplerYcbcrConversionInfo = ()
  Extends ImageViewCreateInfo ImageViewASTCDecodeModeEXT = ()
  Extends ImageViewCreateInfo ImageViewMinLodCreateInfoEXT = ()
  Extends InstanceCreateInfo DebugReportCallbackCreateInfoEXT = ()
  Extends InstanceCreateInfo ValidationFlagsEXT = ()
  Extends InstanceCreateInfo ValidationFeaturesEXT = ()
  Extends InstanceCreateInfo DebugUtilsMessengerCreateInfoEXT = ()
  Extends MemoryAllocateInfo DedicatedAllocationMemoryAllocateInfoNV = ()
  Extends MemoryAllocateInfo ExportMemoryAllocateInfoNV = ()
  Extends MemoryAllocateInfo ImportMemoryWin32HandleInfoNV = ()
  Extends MemoryAllocateInfo ExportMemoryWin32HandleInfoNV = ()
  Extends MemoryAllocateInfo ExportMemoryAllocateInfo = ()
  Extends MemoryAllocateInfo ImportMemoryWin32HandleInfoKHR = ()
  Extends MemoryAllocateInfo ExportMemoryWin32HandleInfoKHR = ()
  Extends MemoryAllocateInfo ImportMemoryZirconHandleInfoFUCHSIA = ()
  Extends MemoryAllocateInfo ImportMemoryFdInfoKHR = ()
  Extends MemoryAllocateInfo MemoryAllocateFlagsInfo = ()
  Extends MemoryAllocateInfo MemoryDedicatedAllocateInfo = ()
  Extends MemoryAllocateInfo ImportMemoryHostPointerInfoEXT = ()
  Extends MemoryAllocateInfo ImportAndroidHardwareBufferInfoANDROID = ()
  Extends MemoryAllocateInfo MemoryPriorityAllocateInfoEXT = ()
  Extends MemoryAllocateInfo MemoryOpaqueCaptureAddressAllocateInfo = ()
  Extends MemoryAllocateInfo ImportMemoryBufferCollectionFUCHSIA = ()
  Extends MemoryRequirements2 MemoryDedicatedRequirements = ()
  Extends PhysicalDeviceExternalSemaphoreInfo SemaphoreTypeCreateInfo = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = ()
  Extends PhysicalDeviceFeatures2 PhysicalDevicePrivateDataFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceVariablePointersFeatures = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceMultiviewFeatures = ()
  Extends PhysicalDeviceFeatures2 PhysicalDevicePresentIdFeaturesKHR = ()
  Extends PhysicalDeviceFeatures2 PhysicalDevicePresentWaitFeaturesKHR = ()
  Extends PhysicalDeviceFeatures2 PhysicalDevice16BitStorageFeatures = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderSubgroupExtendedTypesFeatures = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceSamplerYcbcrConversionFeatures = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceProtectedMemoryFeatures = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceBlendOperationAdvancedFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceMultiDrawFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceInlineUniformBlockFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceMaintenance4FeaturesKHR = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderDrawParametersFeatures = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderFloat16Int8Features = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceHostQueryResetFeatures = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceGlobalPriorityQueryFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceDeviceMemoryReportFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceDescriptorIndexingFeatures = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceTimelineSemaphoreFeatures = ()
  Extends PhysicalDeviceFeatures2 PhysicalDevice8BitStorageFeatures = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceConditionalRenderingFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceVulkanMemoryModelFeatures = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderAtomicInt64Features = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderAtomicFloatFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderAtomicFloat2FeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceVertexAttributeDivisorFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceASTCDecodeFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceTransformFeedbackFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceRepresentativeFragmentTestFeaturesNV = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceExclusiveScissorFeaturesNV = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceCornerSampledImageFeaturesNV = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceComputeShaderDerivativesFeaturesNV = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShaderBarycentricFeaturesNV = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderImageFootprintFeaturesNV = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceShadingRateImageFeaturesNV = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceInvocationMaskFeaturesHUAWEI = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceMeshShaderFeaturesNV = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceAccelerationStructureFeaturesKHR = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceRayTracingPipelineFeaturesKHR = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceRayQueryFeaturesKHR = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentDensityMapFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentDensityMap2FeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceScalarBlockLayoutFeatures = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceUniformBufferStandardLayoutFeatures = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceDepthClipEnableFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceMemoryPriorityFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceBufferDeviceAddressFeatures = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceBufferDeviceAddressFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceImagelessFramebufferFeatures = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceCooperativeMatrixFeaturesNV = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceYcbcrImageArraysFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDevicePerformanceQueryFeaturesKHR = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceCoverageReductionModeFeaturesNV = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderClockFeaturesKHR = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceIndexTypeUint8FeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderSMBuiltinsFeaturesNV = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShaderInterlockFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceSeparateDepthStencilLayoutsFeatures = ()
  Extends PhysicalDeviceFeatures2 PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDevicePipelineExecutablePropertiesFeaturesKHR = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceTexelBufferAlignmentFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceSubgroupSizeControlFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceLineRasterizationFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDevicePipelineCreationCacheControlFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceVulkan11Features = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceVulkan12Features = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceCoherentMemoryFeaturesAMD = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceCustomBorderColorFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceBorderColorSwizzleFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceExtendedDynamicStateFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceExtendedDynamicState2FeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceDiagnosticsConfigFeaturesNV = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceRobustness2FeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceImageRobustnessFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = ()
  Extends PhysicalDeviceFeatures2 PhysicalDevicePortabilitySubsetFeaturesKHR = ()
  Extends PhysicalDeviceFeatures2 PhysicalDevice4444FormatsFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceSubpassShadingFeaturesHUAWEI = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateFeaturesKHR = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderTerminateInvocationFeaturesKHR = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceVertexInputDynamicStateFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceExternalMemoryRDMAFeaturesNV = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceColorWriteEnableFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceSynchronization2FeaturesKHR = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceInheritedViewportScissorFeaturesNV = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceProvokingVertexFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderIntegerDotProductFeaturesKHR = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceRayTracingMotionBlurFeaturesNV = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceRGBA10X6FormatsFeaturesEXT = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceDynamicRenderingFeaturesKHR = ()
  Extends PhysicalDeviceFeatures2 PhysicalDeviceImageViewMinLodFeaturesEXT = ()
  Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceExternalImageFormatInfo = ()
  Extends PhysicalDeviceImageFormatInfo2 ImageFormatListCreateInfo = ()
  Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceImageDrmFormatModifierInfoEXT = ()
  Extends PhysicalDeviceImageFormatInfo2 ImageStencilUsageCreateInfo = ()
  Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceImageViewImageFormatInfoEXT = ()
  Extends PhysicalDeviceMemoryProperties2 PhysicalDeviceMemoryBudgetPropertiesEXT = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceDeviceGeneratedCommandsPropertiesNV = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceMultiDrawPropertiesEXT = ()
  Extends PhysicalDeviceProperties2 PhysicalDevicePushDescriptorPropertiesKHR = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceDriverProperties = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceIDProperties = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceMultiviewProperties = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceDiscardRectanglePropertiesEXT = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceSubgroupProperties = ()
  Extends PhysicalDeviceProperties2 PhysicalDevicePointClippingProperties = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceProtectedMemoryProperties = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceSamplerFilterMinmaxProperties = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceSampleLocationsPropertiesEXT = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceBlendOperationAdvancedPropertiesEXT = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceInlineUniformBlockPropertiesEXT = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceMaintenance3Properties = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceMaintenance4PropertiesKHR = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceFloatControlsProperties = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceExternalMemoryHostPropertiesEXT = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceConservativeRasterizationPropertiesEXT = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceShaderCorePropertiesAMD = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceShaderCoreProperties2AMD = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceDescriptorIndexingProperties = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceTimelineSemaphoreProperties = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceVertexAttributeDivisorPropertiesEXT = ()
  Extends PhysicalDeviceProperties2 PhysicalDevicePCIBusInfoPropertiesEXT = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceDepthStencilResolveProperties = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceTransformFeedbackPropertiesEXT = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceShadingRateImagePropertiesNV = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceMeshShaderPropertiesNV = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceAccelerationStructurePropertiesKHR = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceRayTracingPipelinePropertiesKHR = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceRayTracingPropertiesNV = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentDensityMapPropertiesEXT = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentDensityMap2PropertiesEXT = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceCooperativeMatrixPropertiesNV = ()
  Extends PhysicalDeviceProperties2 PhysicalDevicePerformanceQueryPropertiesKHR = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceShaderSMBuiltinsPropertiesNV = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceTexelBufferAlignmentPropertiesEXT = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceSubgroupSizeControlPropertiesEXT = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceSubpassShadingPropertiesHUAWEI = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceLineRasterizationPropertiesEXT = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceVulkan11Properties = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceVulkan12Properties = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceCustomBorderColorPropertiesEXT = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceRobustness2PropertiesEXT = ()
  Extends PhysicalDeviceProperties2 PhysicalDevicePortabilitySubsetPropertiesKHR = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRatePropertiesKHR = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceProvokingVertexPropertiesEXT = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceShaderIntegerDotProductPropertiesKHR = ()
  Extends PhysicalDeviceProperties2 PhysicalDeviceDrmPropertiesEXT = ()
  Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveInfoEXT = ()
  Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveWin32InfoEXT = ()
  Extends PipelineColorBlendStateCreateInfo PipelineColorBlendAdvancedStateCreateInfoEXT = ()
  Extends PipelineColorBlendStateCreateInfo PipelineColorWriteCreateInfoEXT = ()
  Extends PipelineMultisampleStateCreateInfo PipelineCoverageToColorStateCreateInfoNV = ()
  Extends PipelineMultisampleStateCreateInfo PipelineSampleLocationsStateCreateInfoEXT = ()
  Extends PipelineMultisampleStateCreateInfo PipelineCoverageModulationStateCreateInfoNV = ()
  Extends PipelineMultisampleStateCreateInfo PipelineCoverageReductionStateCreateInfoNV = ()
  Extends PipelineRasterizationStateCreateInfo PipelineRasterizationStateRasterizationOrderAMD = ()
  Extends PipelineRasterizationStateCreateInfo PipelineRasterizationConservativeStateCreateInfoEXT = ()
  Extends PipelineRasterizationStateCreateInfo PipelineRasterizationStateStreamCreateInfoEXT = ()
  Extends PipelineRasterizationStateCreateInfo PipelineRasterizationDepthClipStateCreateInfoEXT = ()
  Extends PipelineRasterizationStateCreateInfo PipelineRasterizationLineStateCreateInfoEXT = ()
  Extends PipelineRasterizationStateCreateInfo PipelineRasterizationProvokingVertexStateCreateInfoEXT = ()
  Extends PipelineShaderStageCreateInfo PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = ()
  Extends PipelineTessellationStateCreateInfo PipelineTessellationDomainOriginStateCreateInfo = ()
  Extends PipelineVertexInputStateCreateInfo PipelineVertexInputDivisorStateCreateInfoEXT = ()
  Extends PipelineViewportStateCreateInfo PipelineViewportWScalingStateCreateInfoNV = ()
  Extends PipelineViewportStateCreateInfo PipelineViewportSwizzleStateCreateInfoNV = ()
  Extends PipelineViewportStateCreateInfo PipelineViewportExclusiveScissorStateCreateInfoNV = ()
  Extends PipelineViewportStateCreateInfo PipelineViewportShadingRateImageStateCreateInfoNV = ()
  Extends PipelineViewportStateCreateInfo PipelineViewportCoarseSampleOrderStateCreateInfoNV = ()
  Extends PresentInfoKHR DisplayPresentInfoKHR = ()
  Extends PresentInfoKHR PresentRegionsKHR = ()
  Extends PresentInfoKHR DeviceGroupPresentInfoKHR = ()
  Extends PresentInfoKHR PresentIdKHR = ()
  Extends PresentInfoKHR PresentTimesInfoGOOGLE = ()
  Extends PresentInfoKHR PresentFrameTokenGGP = ()
  Extends QueryPoolCreateInfo QueryPoolPerformanceCreateInfoKHR = ()
  Extends QueryPoolCreateInfo QueryPoolPerformanceQueryCreateInfoINTEL = ()
  Extends QueueFamilyProperties2 QueueFamilyGlobalPriorityPropertiesEXT = ()
  Extends QueueFamilyProperties2 QueueFamilyCheckpointPropertiesNV = ()
  Extends QueueFamilyProperties2 QueueFamilyCheckpointProperties2NV = ()
  Extends RayTracingPipelineCreateInfoKHR PipelineCreationFeedbackCreateInfoEXT = ()
  Extends RayTracingPipelineCreateInfoNV PipelineCreationFeedbackCreateInfoEXT = ()
  Extends RenderPassBeginInfo DeviceGroupRenderPassBeginInfo = ()
  Extends RenderPassBeginInfo RenderPassSampleLocationsBeginInfoEXT = ()
  Extends RenderPassBeginInfo RenderPassAttachmentBeginInfo = ()
  Extends RenderPassBeginInfo RenderPassTransformBeginInfoQCOM = ()
  Extends RenderPassCreateInfo RenderPassMultiviewCreateInfo = ()
  Extends RenderPassCreateInfo RenderPassInputAttachmentAspectCreateInfo = ()
  Extends RenderPassCreateInfo RenderPassFragmentDensityMapCreateInfoEXT = ()
  Extends RenderPassCreateInfo2 RenderPassFragmentDensityMapCreateInfoEXT = ()
  Extends RenderingInfoKHR DeviceGroupRenderPassBeginInfo = ()
  Extends RenderingInfoKHR RenderingFragmentShadingRateAttachmentInfoKHR = ()
  Extends RenderingInfoKHR RenderingFragmentDensityMapAttachmentInfoEXT = ()
  Extends RenderingInfoKHR MultiviewPerViewAttributesInfoNVX = ()
  Extends SamplerCreateInfo SamplerYcbcrConversionInfo = ()
  Extends SamplerCreateInfo SamplerReductionModeCreateInfo = ()
  Extends SamplerCreateInfo SamplerCustomBorderColorCreateInfoEXT = ()
  Extends SamplerCreateInfo SamplerBorderColorComponentMappingCreateInfoEXT = ()
  Extends SamplerYcbcrConversionCreateInfo ExternalFormatANDROID = ()
  Extends SemaphoreCreateInfo ExportSemaphoreCreateInfo = ()
  Extends SemaphoreCreateInfo ExportSemaphoreWin32HandleInfoKHR = ()
  Extends SemaphoreCreateInfo SemaphoreTypeCreateInfo = ()
  Extends ShaderModuleCreateInfo ShaderModuleValidationCacheCreateInfoEXT = ()
  Extends SubmitInfo Win32KeyedMutexAcquireReleaseInfoNV = ()
  Extends SubmitInfo Win32KeyedMutexAcquireReleaseInfoKHR = ()
  Extends SubmitInfo D3D12FenceSubmitInfoKHR = ()
  Extends SubmitInfo DeviceGroupSubmitInfo = ()
  Extends SubmitInfo ProtectedSubmitInfo = ()
  Extends SubmitInfo TimelineSemaphoreSubmitInfo = ()
  Extends SubmitInfo PerformanceQuerySubmitInfoKHR = ()
  Extends SubmitInfo2KHR Win32KeyedMutexAcquireReleaseInfoNV = ()
  Extends SubmitInfo2KHR Win32KeyedMutexAcquireReleaseInfoKHR = ()
  Extends SubmitInfo2KHR PerformanceQuerySubmitInfoKHR = ()
  Extends SubpassDependency2 MemoryBarrier2KHR = ()
  Extends SubpassDescription2 SubpassDescriptionDepthStencilResolve = ()
  Extends SubpassDescription2 FragmentShadingRateAttachmentInfoKHR = ()
  Extends SurfaceCapabilities2KHR DisplayNativeHdrSurfaceCapabilitiesAMD = ()
  Extends SurfaceCapabilities2KHR SharedPresentSurfaceCapabilitiesKHR = ()
  Extends SurfaceCapabilities2KHR SurfaceProtectedCapabilitiesKHR = ()
  Extends SurfaceCapabilities2KHR SurfaceCapabilitiesFullScreenExclusiveEXT = ()
  Extends SwapchainCreateInfoKHR SwapchainCounterCreateInfoEXT = ()
  Extends SwapchainCreateInfoKHR DeviceGroupSwapchainCreateInfoKHR = ()
  Extends SwapchainCreateInfoKHR SwapchainDisplayNativeHdrCreateInfoAMD = ()
  Extends SwapchainCreateInfoKHR ImageFormatListCreateInfo = ()
  Extends SwapchainCreateInfoKHR SurfaceFullScreenExclusiveInfoEXT = ()
  Extends SwapchainCreateInfoKHR SurfaceFullScreenExclusiveWin32InfoEXT = ()
  Extends WriteDescriptorSet WriteDescriptorSetInlineUniformBlockEXT = ()
  Extends WriteDescriptorSet WriteDescriptorSetAccelerationStructureKHR = ()
  Extends WriteDescriptorSet WriteDescriptorSetAccelerationStructureNV = ()
  Extends a b = TypeError (ShowType a :<>: Text " is not extended by " :<>: ShowType b)

data SomeStruct (a :: [Type] -> Type) where
  SomeStruct
    :: forall a es
     . (Extendss a es, PokeChain es, Show (Chain es))
    => a es
    -> SomeStruct a

deriving instance (forall es. Show (Chain es) => Show (a es)) => Show (SomeStruct a)

-- | The constraint is so on this instance to encourage type inference
instance Zero (a '[]) => Zero (SomeStruct a) where
  zero :: SomeStruct a
zero = a '[] -> SomeStruct a
forall (a :: [*] -> *) (es :: [*]).
(Extendss a es, PokeChain es, Show (Chain es)) =>
a es -> SomeStruct a
SomeStruct (a '[]
forall a. Zero a => a
zero :: a '[])

-- | Forget which extensions a pointed-to struct has by casting the pointer
forgetExtensions :: Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions :: Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions = Ptr (a es) -> Ptr (SomeStruct a)
forall a b. Ptr a -> Ptr b
castPtr

-- | Add an extension to the beginning of the struct chain
--
-- This can be used to optionally extend structs based on some condition (for
-- example, an extension or layer being available)
extendSomeStruct
  :: (Extensible a, Extends a e, ToCStruct e, Show e)
  => e
  -> SomeStruct a
  -> SomeStruct a
extendSomeStruct :: e -> SomeStruct a -> SomeStruct a
extendSomeStruct e
e (SomeStruct a es
a) = a (e : es) -> SomeStruct a
forall (a :: [*] -> *) (es :: [*]).
(Extendss a es, PokeChain es, Show (Chain es)) =>
a es -> SomeStruct a
SomeStruct (a es -> Chain (e : es) -> a (e : es)
forall (a :: [*] -> *) (ds :: [*]) (es :: [*]).
Extensible a =>
a ds -> Chain es -> a es
setNext a es
a (e
e, a es -> Chain es
forall (a :: [*] -> *) (es :: [*]).
Extensible a =>
a es -> Chain es
getNext a es
a))

-- | Consume a 'SomeStruct' value
withSomeStruct
  :: forall a b
   . SomeStruct a
  -> (forall es . (Extendss a es, PokeChain es, Show (Chain es)) => a es -> b)
  -> b
withSomeStruct :: SomeStruct a
-> (forall (es :: [*]).
    (Extendss a es, PokeChain es, Show (Chain es)) =>
    a es -> b)
-> b
withSomeStruct (SomeStruct a es
s) forall (es :: [*]).
(Extendss a es, PokeChain es, Show (Chain es)) =>
a es -> b
f = a es -> b
forall (es :: [*]).
(Extendss a es, PokeChain es, Show (Chain es)) =>
a es -> b
f a es
s

-- | Write the C representation of some extended @a@ and use the pointer,
-- the pointer must not be returned from the continuation.
withSomeCStruct
  :: forall a b
   . (forall es . (Extendss a es, PokeChain es) => ToCStruct (a es))
  => SomeStruct a
  -> (forall es . (Extendss a es, PokeChain es) => Ptr (a es) -> IO b)
  -> IO b
withSomeCStruct :: SomeStruct a
-> (forall (es :: [*]).
    (Extendss a es, PokeChain es) =>
    Ptr (a es) -> IO b)
-> IO b
withSomeCStruct SomeStruct a
s forall (es :: [*]).
(Extendss a es, PokeChain es) =>
Ptr (a es) -> IO b
f = SomeStruct a
-> (forall (es :: [*]).
    (Extendss a es, PokeChain es, Show (Chain es)) =>
    a es -> IO b)
-> IO b
forall (a :: [*] -> *) b.
SomeStruct a
-> (forall (es :: [*]).
    (Extendss a es, PokeChain es, Show (Chain es)) =>
    a es -> b)
-> b
withSomeStruct SomeStruct a
s (a es -> (Ptr (a es) -> IO b) -> IO b
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
`withCStruct` Ptr (a es) -> IO b
forall (es :: [*]).
(Extendss a es, PokeChain es) =>
Ptr (a es) -> IO b
f)

-- | Given some memory for the head of the chain, allocate and poke the
-- tail and run an action.
pokeSomeCStruct
  :: (forall es . (Extendss a es, PokeChain es) => ToCStruct (a es))
  => Ptr (SomeStruct a)
  -- ^ Pointer to some memory at least the size of the head of the struct
  -- chain.
  -> SomeStruct a
  -- ^ The struct to poke
  -> IO b
  -- ^ Computation to run while the poked tail is valid
  -> IO b
pokeSomeCStruct :: Ptr (SomeStruct a) -> SomeStruct a -> IO b -> IO b
pokeSomeCStruct Ptr (SomeStruct a)
p (SomeStruct a es
s) = Ptr (a es) -> a es -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (Ptr (SomeStruct a) -> Ptr (a es)
forall a b. Ptr a -> Ptr b
castPtr Ptr (SomeStruct a)
p) a es
s

-- | Given a pointer to a struct with an unknown chain, peek the struct and
-- its chain.
peekSomeCStruct
  :: forall a
   . (Extensible a, forall es . (Extendss a es, PeekChain es) => FromCStruct (a es))
  => Ptr (SomeStruct a)
  -> IO (SomeStruct a)
peekSomeCStruct :: Ptr (SomeStruct a) -> IO (SomeStruct a)
peekSomeCStruct Ptr (SomeStruct a)
p = do
  a '[]
head'  <- Ptr (a '[]) -> IO (a '[])
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct (Ptr (SomeStruct a) -> Ptr (a '[])
forall a b. Ptr a -> Ptr b
castPtr @_ @(a '[]) Ptr (SomeStruct a)
p)
  Ptr BaseOutStructure
pNext <- Ptr (Ptr BaseOutStructure) -> IO (Ptr BaseOutStructure)
forall a. Storable a => Ptr a -> IO a
peek @(Ptr BaseOutStructure) (Ptr (SomeStruct a)
p Ptr (SomeStruct a) -> Int -> Ptr (Ptr BaseOutStructure)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8)
  Ptr BaseOutStructure
-> (forall (es :: [*]).
    (Extendss a es, PokeChain es, Show (Chain es)) =>
    Chain es -> SomeStruct a)
-> IO (SomeStruct a)
forall (a :: [*] -> *) b.
Extensible a =>
Ptr BaseOutStructure
-> (forall (es :: [*]).
    (Extendss a es, PokeChain es, Show (Chain es)) =>
    Chain es -> b)
-> IO b
peekSomeChain @a Ptr BaseOutStructure
pNext ((forall (es :: [*]).
  (Extendss a es, PokeChain es, Show (Chain es)) =>
  Chain es -> SomeStruct a)
 -> IO (SomeStruct a))
-> (forall (es :: [*]).
    (Extendss a es, PokeChain es, Show (Chain es)) =>
    Chain es -> SomeStruct a)
-> IO (SomeStruct a)
forall a b. (a -> b) -> a -> b
$ \Chain es
tail' -> a es -> SomeStruct a
forall (a :: [*] -> *) (es :: [*]).
(Extendss a es, PokeChain es, Show (Chain es)) =>
a es -> SomeStruct a
SomeStruct (a '[] -> Chain es -> a es
forall (a :: [*] -> *) (ds :: [*]) (es :: [*]).
Extensible a =>
a ds -> Chain es -> a es
setNext a '[]
head' Chain es
tail')

peekSomeChain
  :: forall a b
   . (Extensible a)
  => Ptr BaseOutStructure
  -> (  forall es
      . (Extendss a es, PokeChain es, Show (Chain es))
     => Chain es
     -> b
     )
  -> IO b
peekSomeChain :: Ptr BaseOutStructure
-> (forall (es :: [*]).
    (Extendss a es, PokeChain es, Show (Chain es)) =>
    Chain es -> b)
-> IO b
peekSomeChain Ptr BaseOutStructure
p forall (es :: [*]).
(Extendss a es, PokeChain es, Show (Chain es)) =>
Chain es -> b
c = if Ptr BaseOutStructure
p Ptr BaseOutStructure -> Ptr BaseOutStructure -> Bool
forall a. Eq a => a -> a -> Bool
== Ptr BaseOutStructure
forall a. Ptr a
nullPtr
  then b -> IO b
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Chain '[] -> b
forall (es :: [*]).
(Extendss a es, PokeChain es, Show (Chain es)) =>
Chain es -> b
c ())
  else do
    BaseOutStructure
baseOut <- Ptr BaseOutStructure -> IO BaseOutStructure
forall a. Storable a => Ptr a -> IO a
peek Ptr BaseOutStructure
p
    IO (IO b) -> IO b
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join
      (IO (IO b) -> IO b) -> IO (IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ StructureType
-> Ptr ()
-> (forall e. (Extends a e, ToCStruct e, Show e) => e -> IO b)
-> IO (IO b)
forall (a :: [*] -> *) b.
Extensible a =>
StructureType
-> Ptr ()
-> (forall e. (Extends a e, ToCStruct e, Show e) => e -> b)
-> IO b
peekChainHead @a (BaseOutStructure -> StructureType
sType (BaseOutStructure
baseOut :: BaseOutStructure))
                         (Ptr BaseOutStructure -> Ptr ()
forall a b. Ptr a -> Ptr b
castPtr @BaseOutStructure @() Ptr BaseOutStructure
p)
      ((forall e. (Extends a e, ToCStruct e, Show e) => e -> IO b)
 -> IO (IO b))
-> (forall e. (Extends a e, ToCStruct e, Show e) => e -> IO b)
-> IO (IO b)
forall a b. (a -> b) -> a -> b
$ \e
head' -> Ptr BaseOutStructure
-> (forall (es :: [*]).
    (Extendss a es, PokeChain es, Show (Chain es)) =>
    Chain es -> b)
-> IO b
forall (a :: [*] -> *) b.
Extensible a =>
Ptr BaseOutStructure
-> (forall (es :: [*]).
    (Extendss a es, PokeChain es, Show (Chain es)) =>
    Chain es -> b)
-> IO b
peekSomeChain @a (BaseOutStructure -> Ptr BaseOutStructure
next (BaseOutStructure
baseOut :: BaseOutStructure))
                                  (\Chain es
tail' -> Chain (e : es) -> b
forall (es :: [*]).
(Extendss a es, PokeChain es, Show (Chain es)) =>
Chain es -> b
c (e
head', Chain es
tail'))

peekChainHead
  :: forall a b
   . Extensible a
  => StructureType
  -> Ptr ()
  -> (forall e . (Extends a e, ToCStruct e, Show e) => e -> b)
  -> IO b
peekChainHead :: StructureType
-> Ptr ()
-> (forall e. (Extends a e, ToCStruct e, Show e) => e -> b)
-> IO b
peekChainHead StructureType
ty Ptr ()
p forall e. (Extends a e, ToCStruct e, Show e) => e -> b
c = case StructureType
ty of
  StructureType
STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR -> (Typeable DisplayPresentInfoKHR, FromCStruct DisplayPresentInfoKHR,
 ToCStruct DisplayPresentInfoKHR, Show DisplayPresentInfoKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DisplayPresentInfoKHR
  StructureType
STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT -> (Typeable DebugReportCallbackCreateInfoEXT,
 FromCStruct DebugReportCallbackCreateInfoEXT,
 ToCStruct DebugReportCallbackCreateInfoEXT,
 Show DebugReportCallbackCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DebugReportCallbackCreateInfoEXT
  StructureType
STRUCTURE_TYPE_VALIDATION_FLAGS_EXT -> (Typeable ValidationFlagsEXT, FromCStruct ValidationFlagsEXT,
 ToCStruct ValidationFlagsEXT, Show ValidationFlagsEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ValidationFlagsEXT
  StructureType
STRUCTURE_TYPE_VALIDATION_FEATURES_EXT -> (Typeable ValidationFeaturesEXT, FromCStruct ValidationFeaturesEXT,
 ToCStruct ValidationFeaturesEXT, Show ValidationFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ValidationFeaturesEXT
  StructureType
STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD -> (Typeable PipelineRasterizationStateRasterizationOrderAMD,
 FromCStruct PipelineRasterizationStateRasterizationOrderAMD,
 ToCStruct PipelineRasterizationStateRasterizationOrderAMD,
 Show PipelineRasterizationStateRasterizationOrderAMD) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineRasterizationStateRasterizationOrderAMD
  StructureType
STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV -> (Typeable DedicatedAllocationImageCreateInfoNV,
 FromCStruct DedicatedAllocationImageCreateInfoNV,
 ToCStruct DedicatedAllocationImageCreateInfoNV,
 Show DedicatedAllocationImageCreateInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DedicatedAllocationImageCreateInfoNV
  StructureType
STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV -> (Typeable DedicatedAllocationBufferCreateInfoNV,
 FromCStruct DedicatedAllocationBufferCreateInfoNV,
 ToCStruct DedicatedAllocationBufferCreateInfoNV,
 Show DedicatedAllocationBufferCreateInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DedicatedAllocationBufferCreateInfoNV
  StructureType
STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV -> (Typeable DedicatedAllocationMemoryAllocateInfoNV,
 FromCStruct DedicatedAllocationMemoryAllocateInfoNV,
 ToCStruct DedicatedAllocationMemoryAllocateInfoNV,
 Show DedicatedAllocationMemoryAllocateInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DedicatedAllocationMemoryAllocateInfoNV
  StructureType
STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV -> (Typeable ExternalMemoryImageCreateInfoNV,
 FromCStruct ExternalMemoryImageCreateInfoNV,
 ToCStruct ExternalMemoryImageCreateInfoNV,
 Show ExternalMemoryImageCreateInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ExternalMemoryImageCreateInfoNV
  StructureType
STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV -> (Typeable ExportMemoryAllocateInfoNV,
 FromCStruct ExportMemoryAllocateInfoNV,
 ToCStruct ExportMemoryAllocateInfoNV,
 Show ExportMemoryAllocateInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ExportMemoryAllocateInfoNV
  StructureType
STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV -> (Typeable ImportMemoryWin32HandleInfoNV,
 FromCStruct ImportMemoryWin32HandleInfoNV,
 ToCStruct ImportMemoryWin32HandleInfoNV,
 Show ImportMemoryWin32HandleInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ImportMemoryWin32HandleInfoNV
  StructureType
STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV -> (Typeable ExportMemoryWin32HandleInfoNV,
 FromCStruct ExportMemoryWin32HandleInfoNV,
 ToCStruct ExportMemoryWin32HandleInfoNV,
 Show ExportMemoryWin32HandleInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ExportMemoryWin32HandleInfoNV
  StructureType
STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV -> (Typeable Win32KeyedMutexAcquireReleaseInfoNV,
 FromCStruct Win32KeyedMutexAcquireReleaseInfoNV,
 ToCStruct Win32KeyedMutexAcquireReleaseInfoNV,
 Show Win32KeyedMutexAcquireReleaseInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @Win32KeyedMutexAcquireReleaseInfoNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV -> (Typeable PhysicalDeviceDeviceGeneratedCommandsFeaturesNV,
 FromCStruct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV,
 ToCStruct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV,
 Show PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
  StructureType
STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT -> (Typeable DevicePrivateDataCreateInfoEXT,
 FromCStruct DevicePrivateDataCreateInfoEXT,
 ToCStruct DevicePrivateDataCreateInfoEXT,
 Show DevicePrivateDataCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DevicePrivateDataCreateInfoEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT -> (Typeable PhysicalDevicePrivateDataFeaturesEXT,
 FromCStruct PhysicalDevicePrivateDataFeaturesEXT,
 ToCStruct PhysicalDevicePrivateDataFeaturesEXT,
 Show PhysicalDevicePrivateDataFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDevicePrivateDataFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV -> (Typeable PhysicalDeviceDeviceGeneratedCommandsPropertiesNV,
 FromCStruct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV,
 ToCStruct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV,
 Show PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceDeviceGeneratedCommandsPropertiesNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT -> (Typeable PhysicalDeviceMultiDrawPropertiesEXT,
 FromCStruct PhysicalDeviceMultiDrawPropertiesEXT,
 ToCStruct PhysicalDeviceMultiDrawPropertiesEXT,
 Show PhysicalDeviceMultiDrawPropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceMultiDrawPropertiesEXT
  StructureType
STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV -> (Typeable GraphicsPipelineShaderGroupsCreateInfoNV,
 FromCStruct GraphicsPipelineShaderGroupsCreateInfoNV,
 ToCStruct GraphicsPipelineShaderGroupsCreateInfoNV,
 Show GraphicsPipelineShaderGroupsCreateInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @GraphicsPipelineShaderGroupsCreateInfoNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 -> (Typeable (PhysicalDeviceFeatures2 '[]),
 FromCStruct (PhysicalDeviceFeatures2 '[]),
 ToCStruct (PhysicalDeviceFeatures2 '[]),
 Show (PhysicalDeviceFeatures2 '[])) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @(PhysicalDeviceFeatures2 '[])
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR -> (Typeable PhysicalDevicePushDescriptorPropertiesKHR,
 FromCStruct PhysicalDevicePushDescriptorPropertiesKHR,
 ToCStruct PhysicalDevicePushDescriptorPropertiesKHR,
 Show PhysicalDevicePushDescriptorPropertiesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDevicePushDescriptorPropertiesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES -> (Typeable PhysicalDeviceDriverProperties,
 FromCStruct PhysicalDeviceDriverProperties,
 ToCStruct PhysicalDeviceDriverProperties,
 Show PhysicalDeviceDriverProperties) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceDriverProperties
  StructureType
STRUCTURE_TYPE_PRESENT_REGIONS_KHR -> (Typeable PresentRegionsKHR, FromCStruct PresentRegionsKHR,
 ToCStruct PresentRegionsKHR, Show PresentRegionsKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PresentRegionsKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES -> (Typeable PhysicalDeviceVariablePointersFeatures,
 FromCStruct PhysicalDeviceVariablePointersFeatures,
 ToCStruct PhysicalDeviceVariablePointersFeatures,
 Show PhysicalDeviceVariablePointersFeatures) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceVariablePointersFeatures
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO -> (Typeable PhysicalDeviceExternalImageFormatInfo,
 FromCStruct PhysicalDeviceExternalImageFormatInfo,
 ToCStruct PhysicalDeviceExternalImageFormatInfo,
 Show PhysicalDeviceExternalImageFormatInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceExternalImageFormatInfo
  StructureType
STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES -> (Typeable ExternalImageFormatProperties,
 FromCStruct ExternalImageFormatProperties,
 ToCStruct ExternalImageFormatProperties,
 Show ExternalImageFormatProperties) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ExternalImageFormatProperties
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES -> (Typeable PhysicalDeviceIDProperties,
 FromCStruct PhysicalDeviceIDProperties,
 ToCStruct PhysicalDeviceIDProperties,
 Show PhysicalDeviceIDProperties) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceIDProperties
  StructureType
STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO -> (Typeable ExternalMemoryImageCreateInfo,
 FromCStruct ExternalMemoryImageCreateInfo,
 ToCStruct ExternalMemoryImageCreateInfo,
 Show ExternalMemoryImageCreateInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ExternalMemoryImageCreateInfo
  StructureType
STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO -> (Typeable ExternalMemoryBufferCreateInfo,
 FromCStruct ExternalMemoryBufferCreateInfo,
 ToCStruct ExternalMemoryBufferCreateInfo,
 Show ExternalMemoryBufferCreateInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ExternalMemoryBufferCreateInfo
  StructureType
STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO -> (Typeable ExportMemoryAllocateInfo,
 FromCStruct ExportMemoryAllocateInfo,
 ToCStruct ExportMemoryAllocateInfo,
 Show ExportMemoryAllocateInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ExportMemoryAllocateInfo
  StructureType
STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR -> (Typeable ImportMemoryWin32HandleInfoKHR,
 FromCStruct ImportMemoryWin32HandleInfoKHR,
 ToCStruct ImportMemoryWin32HandleInfoKHR,
 Show ImportMemoryWin32HandleInfoKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ImportMemoryWin32HandleInfoKHR
  StructureType
STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR -> (Typeable ExportMemoryWin32HandleInfoKHR,
 FromCStruct ExportMemoryWin32HandleInfoKHR,
 ToCStruct ExportMemoryWin32HandleInfoKHR,
 Show ExportMemoryWin32HandleInfoKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ExportMemoryWin32HandleInfoKHR
  StructureType
STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA -> (Typeable ImportMemoryZirconHandleInfoFUCHSIA,
 FromCStruct ImportMemoryZirconHandleInfoFUCHSIA,
 ToCStruct ImportMemoryZirconHandleInfoFUCHSIA,
 Show ImportMemoryZirconHandleInfoFUCHSIA) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ImportMemoryZirconHandleInfoFUCHSIA
  StructureType
STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR -> (Typeable ImportMemoryFdInfoKHR, FromCStruct ImportMemoryFdInfoKHR,
 ToCStruct ImportMemoryFdInfoKHR, Show ImportMemoryFdInfoKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ImportMemoryFdInfoKHR
  StructureType
STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR -> (Typeable Win32KeyedMutexAcquireReleaseInfoKHR,
 FromCStruct Win32KeyedMutexAcquireReleaseInfoKHR,
 ToCStruct Win32KeyedMutexAcquireReleaseInfoKHR,
 Show Win32KeyedMutexAcquireReleaseInfoKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @Win32KeyedMutexAcquireReleaseInfoKHR
  StructureType
STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO -> (Typeable ExportSemaphoreCreateInfo,
 FromCStruct ExportSemaphoreCreateInfo,
 ToCStruct ExportSemaphoreCreateInfo,
 Show ExportSemaphoreCreateInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ExportSemaphoreCreateInfo
  StructureType
STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR -> (Typeable ExportSemaphoreWin32HandleInfoKHR,
 FromCStruct ExportSemaphoreWin32HandleInfoKHR,
 ToCStruct ExportSemaphoreWin32HandleInfoKHR,
 Show ExportSemaphoreWin32HandleInfoKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ExportSemaphoreWin32HandleInfoKHR
  StructureType
STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR -> (Typeable D3D12FenceSubmitInfoKHR,
 FromCStruct D3D12FenceSubmitInfoKHR,
 ToCStruct D3D12FenceSubmitInfoKHR, Show D3D12FenceSubmitInfoKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @D3D12FenceSubmitInfoKHR
  StructureType
STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO -> (Typeable ExportFenceCreateInfo, FromCStruct ExportFenceCreateInfo,
 ToCStruct ExportFenceCreateInfo, Show ExportFenceCreateInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ExportFenceCreateInfo
  StructureType
STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR -> (Typeable ExportFenceWin32HandleInfoKHR,
 FromCStruct ExportFenceWin32HandleInfoKHR,
 ToCStruct ExportFenceWin32HandleInfoKHR,
 Show ExportFenceWin32HandleInfoKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ExportFenceWin32HandleInfoKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES -> (Typeable PhysicalDeviceMultiviewFeatures,
 FromCStruct PhysicalDeviceMultiviewFeatures,
 ToCStruct PhysicalDeviceMultiviewFeatures,
 Show PhysicalDeviceMultiviewFeatures) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceMultiviewFeatures
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES -> (Typeable PhysicalDeviceMultiviewProperties,
 FromCStruct PhysicalDeviceMultiviewProperties,
 ToCStruct PhysicalDeviceMultiviewProperties,
 Show PhysicalDeviceMultiviewProperties) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceMultiviewProperties
  StructureType
STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO -> (Typeable RenderPassMultiviewCreateInfo,
 FromCStruct RenderPassMultiviewCreateInfo,
 ToCStruct RenderPassMultiviewCreateInfo,
 Show RenderPassMultiviewCreateInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @RenderPassMultiviewCreateInfo
  StructureType
STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT -> (Typeable SwapchainCounterCreateInfoEXT,
 FromCStruct SwapchainCounterCreateInfoEXT,
 ToCStruct SwapchainCounterCreateInfoEXT,
 Show SwapchainCounterCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @SwapchainCounterCreateInfoEXT
  StructureType
STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO -> (Typeable MemoryAllocateFlagsInfo,
 FromCStruct MemoryAllocateFlagsInfo,
 ToCStruct MemoryAllocateFlagsInfo, Show MemoryAllocateFlagsInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @MemoryAllocateFlagsInfo
  StructureType
STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO -> (Typeable BindBufferMemoryDeviceGroupInfo,
 FromCStruct BindBufferMemoryDeviceGroupInfo,
 ToCStruct BindBufferMemoryDeviceGroupInfo,
 Show BindBufferMemoryDeviceGroupInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @BindBufferMemoryDeviceGroupInfo
  StructureType
STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO -> (Typeable BindImageMemoryDeviceGroupInfo,
 FromCStruct BindImageMemoryDeviceGroupInfo,
 ToCStruct BindImageMemoryDeviceGroupInfo,
 Show BindImageMemoryDeviceGroupInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @BindImageMemoryDeviceGroupInfo
  StructureType
STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO -> (Typeable DeviceGroupRenderPassBeginInfo,
 FromCStruct DeviceGroupRenderPassBeginInfo,
 ToCStruct DeviceGroupRenderPassBeginInfo,
 Show DeviceGroupRenderPassBeginInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DeviceGroupRenderPassBeginInfo
  StructureType
STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO -> (Typeable DeviceGroupCommandBufferBeginInfo,
 FromCStruct DeviceGroupCommandBufferBeginInfo,
 ToCStruct DeviceGroupCommandBufferBeginInfo,
 Show DeviceGroupCommandBufferBeginInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DeviceGroupCommandBufferBeginInfo
  StructureType
STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO -> (Typeable DeviceGroupSubmitInfo, FromCStruct DeviceGroupSubmitInfo,
 ToCStruct DeviceGroupSubmitInfo, Show DeviceGroupSubmitInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DeviceGroupSubmitInfo
  StructureType
STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO -> (Typeable DeviceGroupBindSparseInfo,
 FromCStruct DeviceGroupBindSparseInfo,
 ToCStruct DeviceGroupBindSparseInfo,
 Show DeviceGroupBindSparseInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DeviceGroupBindSparseInfo
  StructureType
STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR -> (Typeable ImageSwapchainCreateInfoKHR,
 FromCStruct ImageSwapchainCreateInfoKHR,
 ToCStruct ImageSwapchainCreateInfoKHR,
 Show ImageSwapchainCreateInfoKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ImageSwapchainCreateInfoKHR
  StructureType
STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR -> (Typeable BindImageMemorySwapchainInfoKHR,
 FromCStruct BindImageMemorySwapchainInfoKHR,
 ToCStruct BindImageMemorySwapchainInfoKHR,
 Show BindImageMemorySwapchainInfoKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @BindImageMemorySwapchainInfoKHR
  StructureType
STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR -> (Typeable DeviceGroupPresentInfoKHR,
 FromCStruct DeviceGroupPresentInfoKHR,
 ToCStruct DeviceGroupPresentInfoKHR,
 Show DeviceGroupPresentInfoKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DeviceGroupPresentInfoKHR
  StructureType
STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO -> (Typeable DeviceGroupDeviceCreateInfo,
 FromCStruct DeviceGroupDeviceCreateInfo,
 ToCStruct DeviceGroupDeviceCreateInfo,
 Show DeviceGroupDeviceCreateInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DeviceGroupDeviceCreateInfo
  StructureType
STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR -> (Typeable DeviceGroupSwapchainCreateInfoKHR,
 FromCStruct DeviceGroupSwapchainCreateInfoKHR,
 ToCStruct DeviceGroupSwapchainCreateInfoKHR,
 Show DeviceGroupSwapchainCreateInfoKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DeviceGroupSwapchainCreateInfoKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR -> (Typeable PhysicalDevicePresentIdFeaturesKHR,
 FromCStruct PhysicalDevicePresentIdFeaturesKHR,
 ToCStruct PhysicalDevicePresentIdFeaturesKHR,
 Show PhysicalDevicePresentIdFeaturesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDevicePresentIdFeaturesKHR
  StructureType
STRUCTURE_TYPE_PRESENT_ID_KHR -> (Typeable PresentIdKHR, FromCStruct PresentIdKHR,
 ToCStruct PresentIdKHR, Show PresentIdKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PresentIdKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR -> (Typeable PhysicalDevicePresentWaitFeaturesKHR,
 FromCStruct PhysicalDevicePresentWaitFeaturesKHR,
 ToCStruct PhysicalDevicePresentWaitFeaturesKHR,
 Show PhysicalDevicePresentWaitFeaturesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDevicePresentWaitFeaturesKHR
  StructureType
STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD -> (Typeable DisplayNativeHdrSurfaceCapabilitiesAMD,
 FromCStruct DisplayNativeHdrSurfaceCapabilitiesAMD,
 ToCStruct DisplayNativeHdrSurfaceCapabilitiesAMD,
 Show DisplayNativeHdrSurfaceCapabilitiesAMD) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DisplayNativeHdrSurfaceCapabilitiesAMD
  StructureType
STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD -> (Typeable SwapchainDisplayNativeHdrCreateInfoAMD,
 FromCStruct SwapchainDisplayNativeHdrCreateInfoAMD,
 ToCStruct SwapchainDisplayNativeHdrCreateInfoAMD,
 Show SwapchainDisplayNativeHdrCreateInfoAMD) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @SwapchainDisplayNativeHdrCreateInfoAMD
  StructureType
STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE -> (Typeable PresentTimesInfoGOOGLE,
 FromCStruct PresentTimesInfoGOOGLE,
 ToCStruct PresentTimesInfoGOOGLE, Show PresentTimesInfoGOOGLE) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PresentTimesInfoGOOGLE
  StructureType
STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV -> (Typeable PipelineViewportWScalingStateCreateInfoNV,
 FromCStruct PipelineViewportWScalingStateCreateInfoNV,
 ToCStruct PipelineViewportWScalingStateCreateInfoNV,
 Show PipelineViewportWScalingStateCreateInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineViewportWScalingStateCreateInfoNV
  StructureType
STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV -> (Typeable PipelineViewportSwizzleStateCreateInfoNV,
 FromCStruct PipelineViewportSwizzleStateCreateInfoNV,
 ToCStruct PipelineViewportSwizzleStateCreateInfoNV,
 Show PipelineViewportSwizzleStateCreateInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineViewportSwizzleStateCreateInfoNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT -> (Typeable PhysicalDeviceDiscardRectanglePropertiesEXT,
 FromCStruct PhysicalDeviceDiscardRectanglePropertiesEXT,
 ToCStruct PhysicalDeviceDiscardRectanglePropertiesEXT,
 Show PhysicalDeviceDiscardRectanglePropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceDiscardRectanglePropertiesEXT
  StructureType
STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT -> (Typeable PipelineDiscardRectangleStateCreateInfoEXT,
 FromCStruct PipelineDiscardRectangleStateCreateInfoEXT,
 ToCStruct PipelineDiscardRectangleStateCreateInfoEXT,
 Show PipelineDiscardRectangleStateCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineDiscardRectangleStateCreateInfoEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX -> (Typeable PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX,
 FromCStruct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX,
 ToCStruct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX,
 Show PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
  StructureType
STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO -> (Typeable RenderPassInputAttachmentAspectCreateInfo,
 FromCStruct RenderPassInputAttachmentAspectCreateInfo,
 ToCStruct RenderPassInputAttachmentAspectCreateInfo,
 Show RenderPassInputAttachmentAspectCreateInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @RenderPassInputAttachmentAspectCreateInfo
  StructureType
STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR -> (Typeable SharedPresentSurfaceCapabilitiesKHR,
 FromCStruct SharedPresentSurfaceCapabilitiesKHR,
 ToCStruct SharedPresentSurfaceCapabilitiesKHR,
 Show SharedPresentSurfaceCapabilitiesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @SharedPresentSurfaceCapabilitiesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES -> (Typeable PhysicalDevice16BitStorageFeatures,
 FromCStruct PhysicalDevice16BitStorageFeatures,
 ToCStruct PhysicalDevice16BitStorageFeatures,
 Show PhysicalDevice16BitStorageFeatures) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDevice16BitStorageFeatures
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES -> (Typeable PhysicalDeviceSubgroupProperties,
 FromCStruct PhysicalDeviceSubgroupProperties,
 ToCStruct PhysicalDeviceSubgroupProperties,
 Show PhysicalDeviceSubgroupProperties) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceSubgroupProperties
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES -> (Typeable PhysicalDeviceShaderSubgroupExtendedTypesFeatures,
 FromCStruct PhysicalDeviceShaderSubgroupExtendedTypesFeatures,
 ToCStruct PhysicalDeviceShaderSubgroupExtendedTypesFeatures,
 Show PhysicalDeviceShaderSubgroupExtendedTypesFeatures) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShaderSubgroupExtendedTypesFeatures
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES -> (Typeable PhysicalDevicePointClippingProperties,
 FromCStruct PhysicalDevicePointClippingProperties,
 ToCStruct PhysicalDevicePointClippingProperties,
 Show PhysicalDevicePointClippingProperties) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDevicePointClippingProperties
  StructureType
STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS -> (Typeable MemoryDedicatedRequirements,
 FromCStruct MemoryDedicatedRequirements,
 ToCStruct MemoryDedicatedRequirements,
 Show MemoryDedicatedRequirements) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @MemoryDedicatedRequirements
  StructureType
STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO -> (Typeable MemoryDedicatedAllocateInfo,
 FromCStruct MemoryDedicatedAllocateInfo,
 ToCStruct MemoryDedicatedAllocateInfo,
 Show MemoryDedicatedAllocateInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @MemoryDedicatedAllocateInfo
  StructureType
STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO -> (Typeable ImageViewUsageCreateInfo,
 FromCStruct ImageViewUsageCreateInfo,
 ToCStruct ImageViewUsageCreateInfo,
 Show ImageViewUsageCreateInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ImageViewUsageCreateInfo
  StructureType
STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO -> (Typeable PipelineTessellationDomainOriginStateCreateInfo,
 FromCStruct PipelineTessellationDomainOriginStateCreateInfo,
 ToCStruct PipelineTessellationDomainOriginStateCreateInfo,
 Show PipelineTessellationDomainOriginStateCreateInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineTessellationDomainOriginStateCreateInfo
  StructureType
STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO -> (Typeable SamplerYcbcrConversionInfo,
 FromCStruct SamplerYcbcrConversionInfo,
 ToCStruct SamplerYcbcrConversionInfo,
 Show SamplerYcbcrConversionInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @SamplerYcbcrConversionInfo
  StructureType
STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO -> (Typeable BindImagePlaneMemoryInfo,
 FromCStruct BindImagePlaneMemoryInfo,
 ToCStruct BindImagePlaneMemoryInfo,
 Show BindImagePlaneMemoryInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @BindImagePlaneMemoryInfo
  StructureType
STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO -> (Typeable ImagePlaneMemoryRequirementsInfo,
 FromCStruct ImagePlaneMemoryRequirementsInfo,
 ToCStruct ImagePlaneMemoryRequirementsInfo,
 Show ImagePlaneMemoryRequirementsInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ImagePlaneMemoryRequirementsInfo
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES -> (Typeable PhysicalDeviceSamplerYcbcrConversionFeatures,
 FromCStruct PhysicalDeviceSamplerYcbcrConversionFeatures,
 ToCStruct PhysicalDeviceSamplerYcbcrConversionFeatures,
 Show PhysicalDeviceSamplerYcbcrConversionFeatures) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceSamplerYcbcrConversionFeatures
  StructureType
STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES -> (Typeable SamplerYcbcrConversionImageFormatProperties,
 FromCStruct SamplerYcbcrConversionImageFormatProperties,
 ToCStruct SamplerYcbcrConversionImageFormatProperties,
 Show SamplerYcbcrConversionImageFormatProperties) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @SamplerYcbcrConversionImageFormatProperties
  StructureType
STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD -> (Typeable TextureLODGatherFormatPropertiesAMD,
 FromCStruct TextureLODGatherFormatPropertiesAMD,
 ToCStruct TextureLODGatherFormatPropertiesAMD,
 Show TextureLODGatherFormatPropertiesAMD) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @TextureLODGatherFormatPropertiesAMD
  StructureType
STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO -> (Typeable ProtectedSubmitInfo, FromCStruct ProtectedSubmitInfo,
 ToCStruct ProtectedSubmitInfo, Show ProtectedSubmitInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ProtectedSubmitInfo
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES -> (Typeable PhysicalDeviceProtectedMemoryFeatures,
 FromCStruct PhysicalDeviceProtectedMemoryFeatures,
 ToCStruct PhysicalDeviceProtectedMemoryFeatures,
 Show PhysicalDeviceProtectedMemoryFeatures) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceProtectedMemoryFeatures
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES -> (Typeable PhysicalDeviceProtectedMemoryProperties,
 FromCStruct PhysicalDeviceProtectedMemoryProperties,
 ToCStruct PhysicalDeviceProtectedMemoryProperties,
 Show PhysicalDeviceProtectedMemoryProperties) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceProtectedMemoryProperties
  StructureType
STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV -> (Typeable PipelineCoverageToColorStateCreateInfoNV,
 FromCStruct PipelineCoverageToColorStateCreateInfoNV,
 ToCStruct PipelineCoverageToColorStateCreateInfoNV,
 Show PipelineCoverageToColorStateCreateInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineCoverageToColorStateCreateInfoNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES -> (Typeable PhysicalDeviceSamplerFilterMinmaxProperties,
 FromCStruct PhysicalDeviceSamplerFilterMinmaxProperties,
 ToCStruct PhysicalDeviceSamplerFilterMinmaxProperties,
 Show PhysicalDeviceSamplerFilterMinmaxProperties) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceSamplerFilterMinmaxProperties
  StructureType
STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT -> (Typeable SampleLocationsInfoEXT,
 FromCStruct SampleLocationsInfoEXT,
 ToCStruct SampleLocationsInfoEXT, Show SampleLocationsInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @SampleLocationsInfoEXT
  StructureType
STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT -> (Typeable RenderPassSampleLocationsBeginInfoEXT,
 FromCStruct RenderPassSampleLocationsBeginInfoEXT,
 ToCStruct RenderPassSampleLocationsBeginInfoEXT,
 Show RenderPassSampleLocationsBeginInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @RenderPassSampleLocationsBeginInfoEXT
  StructureType
STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT -> (Typeable PipelineSampleLocationsStateCreateInfoEXT,
 FromCStruct PipelineSampleLocationsStateCreateInfoEXT,
 ToCStruct PipelineSampleLocationsStateCreateInfoEXT,
 Show PipelineSampleLocationsStateCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineSampleLocationsStateCreateInfoEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT -> (Typeable PhysicalDeviceSampleLocationsPropertiesEXT,
 FromCStruct PhysicalDeviceSampleLocationsPropertiesEXT,
 ToCStruct PhysicalDeviceSampleLocationsPropertiesEXT,
 Show PhysicalDeviceSampleLocationsPropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceSampleLocationsPropertiesEXT
  StructureType
STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO -> (Typeable SamplerReductionModeCreateInfo,
 FromCStruct SamplerReductionModeCreateInfo,
 ToCStruct SamplerReductionModeCreateInfo,
 Show SamplerReductionModeCreateInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @SamplerReductionModeCreateInfo
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT -> (Typeable PhysicalDeviceBlendOperationAdvancedFeaturesEXT,
 FromCStruct PhysicalDeviceBlendOperationAdvancedFeaturesEXT,
 ToCStruct PhysicalDeviceBlendOperationAdvancedFeaturesEXT,
 Show PhysicalDeviceBlendOperationAdvancedFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceBlendOperationAdvancedFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT -> (Typeable PhysicalDeviceMultiDrawFeaturesEXT,
 FromCStruct PhysicalDeviceMultiDrawFeaturesEXT,
 ToCStruct PhysicalDeviceMultiDrawFeaturesEXT,
 Show PhysicalDeviceMultiDrawFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceMultiDrawFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT -> (Typeable PhysicalDeviceBlendOperationAdvancedPropertiesEXT,
 FromCStruct PhysicalDeviceBlendOperationAdvancedPropertiesEXT,
 ToCStruct PhysicalDeviceBlendOperationAdvancedPropertiesEXT,
 Show PhysicalDeviceBlendOperationAdvancedPropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceBlendOperationAdvancedPropertiesEXT
  StructureType
STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT -> (Typeable PipelineColorBlendAdvancedStateCreateInfoEXT,
 FromCStruct PipelineColorBlendAdvancedStateCreateInfoEXT,
 ToCStruct PipelineColorBlendAdvancedStateCreateInfoEXT,
 Show PipelineColorBlendAdvancedStateCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineColorBlendAdvancedStateCreateInfoEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT -> (Typeable PhysicalDeviceInlineUniformBlockFeaturesEXT,
 FromCStruct PhysicalDeviceInlineUniformBlockFeaturesEXT,
 ToCStruct PhysicalDeviceInlineUniformBlockFeaturesEXT,
 Show PhysicalDeviceInlineUniformBlockFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceInlineUniformBlockFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT -> (Typeable PhysicalDeviceInlineUniformBlockPropertiesEXT,
 FromCStruct PhysicalDeviceInlineUniformBlockPropertiesEXT,
 ToCStruct PhysicalDeviceInlineUniformBlockPropertiesEXT,
 Show PhysicalDeviceInlineUniformBlockPropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceInlineUniformBlockPropertiesEXT
  StructureType
STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT -> (Typeable WriteDescriptorSetInlineUniformBlockEXT,
 FromCStruct WriteDescriptorSetInlineUniformBlockEXT,
 ToCStruct WriteDescriptorSetInlineUniformBlockEXT,
 Show WriteDescriptorSetInlineUniformBlockEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @WriteDescriptorSetInlineUniformBlockEXT
  StructureType
STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT -> (Typeable DescriptorPoolInlineUniformBlockCreateInfoEXT,
 FromCStruct DescriptorPoolInlineUniformBlockCreateInfoEXT,
 ToCStruct DescriptorPoolInlineUniformBlockCreateInfoEXT,
 Show DescriptorPoolInlineUniformBlockCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DescriptorPoolInlineUniformBlockCreateInfoEXT
  StructureType
STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV -> (Typeable PipelineCoverageModulationStateCreateInfoNV,
 FromCStruct PipelineCoverageModulationStateCreateInfoNV,
 ToCStruct PipelineCoverageModulationStateCreateInfoNV,
 Show PipelineCoverageModulationStateCreateInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineCoverageModulationStateCreateInfoNV
  StructureType
STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO -> (Typeable ImageFormatListCreateInfo,
 FromCStruct ImageFormatListCreateInfo,
 ToCStruct ImageFormatListCreateInfo,
 Show ImageFormatListCreateInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ImageFormatListCreateInfo
  StructureType
STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT -> (Typeable ShaderModuleValidationCacheCreateInfoEXT,
 FromCStruct ShaderModuleValidationCacheCreateInfoEXT,
 ToCStruct ShaderModuleValidationCacheCreateInfoEXT,
 Show ShaderModuleValidationCacheCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ShaderModuleValidationCacheCreateInfoEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES -> (Typeable PhysicalDeviceMaintenance3Properties,
 FromCStruct PhysicalDeviceMaintenance3Properties,
 ToCStruct PhysicalDeviceMaintenance3Properties,
 Show PhysicalDeviceMaintenance3Properties) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceMaintenance3Properties
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR -> (Typeable PhysicalDeviceMaintenance4FeaturesKHR,
 FromCStruct PhysicalDeviceMaintenance4FeaturesKHR,
 ToCStruct PhysicalDeviceMaintenance4FeaturesKHR,
 Show PhysicalDeviceMaintenance4FeaturesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceMaintenance4FeaturesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR -> (Typeable PhysicalDeviceMaintenance4PropertiesKHR,
 FromCStruct PhysicalDeviceMaintenance4PropertiesKHR,
 ToCStruct PhysicalDeviceMaintenance4PropertiesKHR,
 Show PhysicalDeviceMaintenance4PropertiesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceMaintenance4PropertiesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES -> (Typeable PhysicalDeviceShaderDrawParametersFeatures,
 FromCStruct PhysicalDeviceShaderDrawParametersFeatures,
 ToCStruct PhysicalDeviceShaderDrawParametersFeatures,
 Show PhysicalDeviceShaderDrawParametersFeatures) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShaderDrawParametersFeatures
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES -> (Typeable PhysicalDeviceShaderFloat16Int8Features,
 FromCStruct PhysicalDeviceShaderFloat16Int8Features,
 ToCStruct PhysicalDeviceShaderFloat16Int8Features,
 Show PhysicalDeviceShaderFloat16Int8Features) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShaderFloat16Int8Features
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES -> (Typeable PhysicalDeviceFloatControlsProperties,
 FromCStruct PhysicalDeviceFloatControlsProperties,
 ToCStruct PhysicalDeviceFloatControlsProperties,
 Show PhysicalDeviceFloatControlsProperties) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceFloatControlsProperties
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES -> (Typeable PhysicalDeviceHostQueryResetFeatures,
 FromCStruct PhysicalDeviceHostQueryResetFeatures,
 ToCStruct PhysicalDeviceHostQueryResetFeatures,
 Show PhysicalDeviceHostQueryResetFeatures) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceHostQueryResetFeatures
  StructureType
STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT -> (Typeable DeviceQueueGlobalPriorityCreateInfoEXT,
 FromCStruct DeviceQueueGlobalPriorityCreateInfoEXT,
 ToCStruct DeviceQueueGlobalPriorityCreateInfoEXT,
 Show DeviceQueueGlobalPriorityCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DeviceQueueGlobalPriorityCreateInfoEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT -> (Typeable PhysicalDeviceGlobalPriorityQueryFeaturesEXT,
 FromCStruct PhysicalDeviceGlobalPriorityQueryFeaturesEXT,
 ToCStruct PhysicalDeviceGlobalPriorityQueryFeaturesEXT,
 Show PhysicalDeviceGlobalPriorityQueryFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceGlobalPriorityQueryFeaturesEXT
  StructureType
STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT -> (Typeable QueueFamilyGlobalPriorityPropertiesEXT,
 FromCStruct QueueFamilyGlobalPriorityPropertiesEXT,
 ToCStruct QueueFamilyGlobalPriorityPropertiesEXT,
 Show QueueFamilyGlobalPriorityPropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @QueueFamilyGlobalPriorityPropertiesEXT
  StructureType
STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT -> (Typeable DebugUtilsMessengerCreateInfoEXT,
 FromCStruct DebugUtilsMessengerCreateInfoEXT,
 ToCStruct DebugUtilsMessengerCreateInfoEXT,
 Show DebugUtilsMessengerCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DebugUtilsMessengerCreateInfoEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT -> (Typeable PhysicalDeviceDeviceMemoryReportFeaturesEXT,
 FromCStruct PhysicalDeviceDeviceMemoryReportFeaturesEXT,
 ToCStruct PhysicalDeviceDeviceMemoryReportFeaturesEXT,
 Show PhysicalDeviceDeviceMemoryReportFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceDeviceMemoryReportFeaturesEXT
  StructureType
STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT -> (Typeable DeviceDeviceMemoryReportCreateInfoEXT,
 FromCStruct DeviceDeviceMemoryReportCreateInfoEXT,
 ToCStruct DeviceDeviceMemoryReportCreateInfoEXT,
 Show DeviceDeviceMemoryReportCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DeviceDeviceMemoryReportCreateInfoEXT
  StructureType
STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT -> (Typeable ImportMemoryHostPointerInfoEXT,
 FromCStruct ImportMemoryHostPointerInfoEXT,
 ToCStruct ImportMemoryHostPointerInfoEXT,
 Show ImportMemoryHostPointerInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ImportMemoryHostPointerInfoEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT -> (Typeable PhysicalDeviceExternalMemoryHostPropertiesEXT,
 FromCStruct PhysicalDeviceExternalMemoryHostPropertiesEXT,
 ToCStruct PhysicalDeviceExternalMemoryHostPropertiesEXT,
 Show PhysicalDeviceExternalMemoryHostPropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceExternalMemoryHostPropertiesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT -> (Typeable PhysicalDeviceConservativeRasterizationPropertiesEXT,
 FromCStruct PhysicalDeviceConservativeRasterizationPropertiesEXT,
 ToCStruct PhysicalDeviceConservativeRasterizationPropertiesEXT,
 Show PhysicalDeviceConservativeRasterizationPropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceConservativeRasterizationPropertiesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD -> (Typeable PhysicalDeviceShaderCorePropertiesAMD,
 FromCStruct PhysicalDeviceShaderCorePropertiesAMD,
 ToCStruct PhysicalDeviceShaderCorePropertiesAMD,
 Show PhysicalDeviceShaderCorePropertiesAMD) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShaderCorePropertiesAMD
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD -> (Typeable PhysicalDeviceShaderCoreProperties2AMD,
 FromCStruct PhysicalDeviceShaderCoreProperties2AMD,
 ToCStruct PhysicalDeviceShaderCoreProperties2AMD,
 Show PhysicalDeviceShaderCoreProperties2AMD) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShaderCoreProperties2AMD
  StructureType
STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT -> (Typeable PipelineRasterizationConservativeStateCreateInfoEXT,
 FromCStruct PipelineRasterizationConservativeStateCreateInfoEXT,
 ToCStruct PipelineRasterizationConservativeStateCreateInfoEXT,
 Show PipelineRasterizationConservativeStateCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineRasterizationConservativeStateCreateInfoEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES -> (Typeable PhysicalDeviceDescriptorIndexingFeatures,
 FromCStruct PhysicalDeviceDescriptorIndexingFeatures,
 ToCStruct PhysicalDeviceDescriptorIndexingFeatures,
 Show PhysicalDeviceDescriptorIndexingFeatures) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceDescriptorIndexingFeatures
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES -> (Typeable PhysicalDeviceDescriptorIndexingProperties,
 FromCStruct PhysicalDeviceDescriptorIndexingProperties,
 ToCStruct PhysicalDeviceDescriptorIndexingProperties,
 Show PhysicalDeviceDescriptorIndexingProperties) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceDescriptorIndexingProperties
  StructureType
STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO -> (Typeable DescriptorSetLayoutBindingFlagsCreateInfo,
 FromCStruct DescriptorSetLayoutBindingFlagsCreateInfo,
 ToCStruct DescriptorSetLayoutBindingFlagsCreateInfo,
 Show DescriptorSetLayoutBindingFlagsCreateInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DescriptorSetLayoutBindingFlagsCreateInfo
  StructureType
STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO -> (Typeable DescriptorSetVariableDescriptorCountAllocateInfo,
 FromCStruct DescriptorSetVariableDescriptorCountAllocateInfo,
 ToCStruct DescriptorSetVariableDescriptorCountAllocateInfo,
 Show DescriptorSetVariableDescriptorCountAllocateInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DescriptorSetVariableDescriptorCountAllocateInfo
  StructureType
STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT -> (Typeable DescriptorSetVariableDescriptorCountLayoutSupport,
 FromCStruct DescriptorSetVariableDescriptorCountLayoutSupport,
 ToCStruct DescriptorSetVariableDescriptorCountLayoutSupport,
 Show DescriptorSetVariableDescriptorCountLayoutSupport) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DescriptorSetVariableDescriptorCountLayoutSupport
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES -> (Typeable PhysicalDeviceTimelineSemaphoreFeatures,
 FromCStruct PhysicalDeviceTimelineSemaphoreFeatures,
 ToCStruct PhysicalDeviceTimelineSemaphoreFeatures,
 Show PhysicalDeviceTimelineSemaphoreFeatures) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceTimelineSemaphoreFeatures
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES -> (Typeable PhysicalDeviceTimelineSemaphoreProperties,
 FromCStruct PhysicalDeviceTimelineSemaphoreProperties,
 ToCStruct PhysicalDeviceTimelineSemaphoreProperties,
 Show PhysicalDeviceTimelineSemaphoreProperties) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceTimelineSemaphoreProperties
  StructureType
STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO -> (Typeable SemaphoreTypeCreateInfo,
 FromCStruct SemaphoreTypeCreateInfo,
 ToCStruct SemaphoreTypeCreateInfo, Show SemaphoreTypeCreateInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @SemaphoreTypeCreateInfo
  StructureType
STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO -> (Typeable TimelineSemaphoreSubmitInfo,
 FromCStruct TimelineSemaphoreSubmitInfo,
 ToCStruct TimelineSemaphoreSubmitInfo,
 Show TimelineSemaphoreSubmitInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @TimelineSemaphoreSubmitInfo
  StructureType
STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT -> (Typeable PipelineVertexInputDivisorStateCreateInfoEXT,
 FromCStruct PipelineVertexInputDivisorStateCreateInfoEXT,
 ToCStruct PipelineVertexInputDivisorStateCreateInfoEXT,
 Show PipelineVertexInputDivisorStateCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineVertexInputDivisorStateCreateInfoEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT -> (Typeable PhysicalDeviceVertexAttributeDivisorPropertiesEXT,
 FromCStruct PhysicalDeviceVertexAttributeDivisorPropertiesEXT,
 ToCStruct PhysicalDeviceVertexAttributeDivisorPropertiesEXT,
 Show PhysicalDeviceVertexAttributeDivisorPropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceVertexAttributeDivisorPropertiesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT -> (Typeable PhysicalDevicePCIBusInfoPropertiesEXT,
 FromCStruct PhysicalDevicePCIBusInfoPropertiesEXT,
 ToCStruct PhysicalDevicePCIBusInfoPropertiesEXT,
 Show PhysicalDevicePCIBusInfoPropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDevicePCIBusInfoPropertiesEXT
  StructureType
STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID -> (Typeable ImportAndroidHardwareBufferInfoANDROID,
 FromCStruct ImportAndroidHardwareBufferInfoANDROID,
 ToCStruct ImportAndroidHardwareBufferInfoANDROID,
 Show ImportAndroidHardwareBufferInfoANDROID) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ImportAndroidHardwareBufferInfoANDROID
  StructureType
STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID -> (Typeable AndroidHardwareBufferUsageANDROID,
 FromCStruct AndroidHardwareBufferUsageANDROID,
 ToCStruct AndroidHardwareBufferUsageANDROID,
 Show AndroidHardwareBufferUsageANDROID) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @AndroidHardwareBufferUsageANDROID
  StructureType
STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID -> (Typeable AndroidHardwareBufferFormatPropertiesANDROID,
 FromCStruct AndroidHardwareBufferFormatPropertiesANDROID,
 ToCStruct AndroidHardwareBufferFormatPropertiesANDROID,
 Show AndroidHardwareBufferFormatPropertiesANDROID) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @AndroidHardwareBufferFormatPropertiesANDROID
  StructureType
STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT -> (Typeable CommandBufferInheritanceConditionalRenderingInfoEXT,
 FromCStruct CommandBufferInheritanceConditionalRenderingInfoEXT,
 ToCStruct CommandBufferInheritanceConditionalRenderingInfoEXT,
 Show CommandBufferInheritanceConditionalRenderingInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @CommandBufferInheritanceConditionalRenderingInfoEXT
  StructureType
STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID -> (Typeable ExternalFormatANDROID, FromCStruct ExternalFormatANDROID,
 ToCStruct ExternalFormatANDROID, Show ExternalFormatANDROID) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ExternalFormatANDROID
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES -> (Typeable PhysicalDevice8BitStorageFeatures,
 FromCStruct PhysicalDevice8BitStorageFeatures,
 ToCStruct PhysicalDevice8BitStorageFeatures,
 Show PhysicalDevice8BitStorageFeatures) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDevice8BitStorageFeatures
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT -> (Typeable PhysicalDeviceConditionalRenderingFeaturesEXT,
 FromCStruct PhysicalDeviceConditionalRenderingFeaturesEXT,
 ToCStruct PhysicalDeviceConditionalRenderingFeaturesEXT,
 Show PhysicalDeviceConditionalRenderingFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceConditionalRenderingFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES -> (Typeable PhysicalDeviceVulkanMemoryModelFeatures,
 FromCStruct PhysicalDeviceVulkanMemoryModelFeatures,
 ToCStruct PhysicalDeviceVulkanMemoryModelFeatures,
 Show PhysicalDeviceVulkanMemoryModelFeatures) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceVulkanMemoryModelFeatures
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES -> (Typeable PhysicalDeviceShaderAtomicInt64Features,
 FromCStruct PhysicalDeviceShaderAtomicInt64Features,
 ToCStruct PhysicalDeviceShaderAtomicInt64Features,
 Show PhysicalDeviceShaderAtomicInt64Features) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShaderAtomicInt64Features
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT -> (Typeable PhysicalDeviceShaderAtomicFloatFeaturesEXT,
 FromCStruct PhysicalDeviceShaderAtomicFloatFeaturesEXT,
 ToCStruct PhysicalDeviceShaderAtomicFloatFeaturesEXT,
 Show PhysicalDeviceShaderAtomicFloatFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShaderAtomicFloatFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT -> (Typeable PhysicalDeviceShaderAtomicFloat2FeaturesEXT,
 FromCStruct PhysicalDeviceShaderAtomicFloat2FeaturesEXT,
 ToCStruct PhysicalDeviceShaderAtomicFloat2FeaturesEXT,
 Show PhysicalDeviceShaderAtomicFloat2FeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShaderAtomicFloat2FeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT -> (Typeable PhysicalDeviceVertexAttributeDivisorFeaturesEXT,
 FromCStruct PhysicalDeviceVertexAttributeDivisorFeaturesEXT,
 ToCStruct PhysicalDeviceVertexAttributeDivisorFeaturesEXT,
 Show PhysicalDeviceVertexAttributeDivisorFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceVertexAttributeDivisorFeaturesEXT
  StructureType
STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV -> (Typeable QueueFamilyCheckpointPropertiesNV,
 FromCStruct QueueFamilyCheckpointPropertiesNV,
 ToCStruct QueueFamilyCheckpointPropertiesNV,
 Show QueueFamilyCheckpointPropertiesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @QueueFamilyCheckpointPropertiesNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES -> (Typeable PhysicalDeviceDepthStencilResolveProperties,
 FromCStruct PhysicalDeviceDepthStencilResolveProperties,
 ToCStruct PhysicalDeviceDepthStencilResolveProperties,
 Show PhysicalDeviceDepthStencilResolveProperties) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceDepthStencilResolveProperties
  StructureType
STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE -> (Typeable SubpassDescriptionDepthStencilResolve,
 FromCStruct SubpassDescriptionDepthStencilResolve,
 ToCStruct SubpassDescriptionDepthStencilResolve,
 Show SubpassDescriptionDepthStencilResolve) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @SubpassDescriptionDepthStencilResolve
  StructureType
STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT -> (Typeable ImageViewASTCDecodeModeEXT,
 FromCStruct ImageViewASTCDecodeModeEXT,
 ToCStruct ImageViewASTCDecodeModeEXT,
 Show ImageViewASTCDecodeModeEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ImageViewASTCDecodeModeEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT -> (Typeable PhysicalDeviceASTCDecodeFeaturesEXT,
 FromCStruct PhysicalDeviceASTCDecodeFeaturesEXT,
 ToCStruct PhysicalDeviceASTCDecodeFeaturesEXT,
 Show PhysicalDeviceASTCDecodeFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceASTCDecodeFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT -> (Typeable PhysicalDeviceTransformFeedbackFeaturesEXT,
 FromCStruct PhysicalDeviceTransformFeedbackFeaturesEXT,
 ToCStruct PhysicalDeviceTransformFeedbackFeaturesEXT,
 Show PhysicalDeviceTransformFeedbackFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceTransformFeedbackFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT -> (Typeable PhysicalDeviceTransformFeedbackPropertiesEXT,
 FromCStruct PhysicalDeviceTransformFeedbackPropertiesEXT,
 ToCStruct PhysicalDeviceTransformFeedbackPropertiesEXT,
 Show PhysicalDeviceTransformFeedbackPropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceTransformFeedbackPropertiesEXT
  StructureType
STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT -> (Typeable PipelineRasterizationStateStreamCreateInfoEXT,
 FromCStruct PipelineRasterizationStateStreamCreateInfoEXT,
 ToCStruct PipelineRasterizationStateStreamCreateInfoEXT,
 Show PipelineRasterizationStateStreamCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineRasterizationStateStreamCreateInfoEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV -> (Typeable PhysicalDeviceRepresentativeFragmentTestFeaturesNV,
 FromCStruct PhysicalDeviceRepresentativeFragmentTestFeaturesNV,
 ToCStruct PhysicalDeviceRepresentativeFragmentTestFeaturesNV,
 Show PhysicalDeviceRepresentativeFragmentTestFeaturesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceRepresentativeFragmentTestFeaturesNV
  StructureType
STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV -> (Typeable PipelineRepresentativeFragmentTestStateCreateInfoNV,
 FromCStruct PipelineRepresentativeFragmentTestStateCreateInfoNV,
 ToCStruct PipelineRepresentativeFragmentTestStateCreateInfoNV,
 Show PipelineRepresentativeFragmentTestStateCreateInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineRepresentativeFragmentTestStateCreateInfoNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV -> (Typeable PhysicalDeviceExclusiveScissorFeaturesNV,
 FromCStruct PhysicalDeviceExclusiveScissorFeaturesNV,
 ToCStruct PhysicalDeviceExclusiveScissorFeaturesNV,
 Show PhysicalDeviceExclusiveScissorFeaturesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceExclusiveScissorFeaturesNV
  StructureType
STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV -> (Typeable PipelineViewportExclusiveScissorStateCreateInfoNV,
 FromCStruct PipelineViewportExclusiveScissorStateCreateInfoNV,
 ToCStruct PipelineViewportExclusiveScissorStateCreateInfoNV,
 Show PipelineViewportExclusiveScissorStateCreateInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineViewportExclusiveScissorStateCreateInfoNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV -> (Typeable PhysicalDeviceCornerSampledImageFeaturesNV,
 FromCStruct PhysicalDeviceCornerSampledImageFeaturesNV,
 ToCStruct PhysicalDeviceCornerSampledImageFeaturesNV,
 Show PhysicalDeviceCornerSampledImageFeaturesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceCornerSampledImageFeaturesNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV -> (Typeable PhysicalDeviceComputeShaderDerivativesFeaturesNV,
 FromCStruct PhysicalDeviceComputeShaderDerivativesFeaturesNV,
 ToCStruct PhysicalDeviceComputeShaderDerivativesFeaturesNV,
 Show PhysicalDeviceComputeShaderDerivativesFeaturesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceComputeShaderDerivativesFeaturesNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV -> (Typeable PhysicalDeviceFragmentShaderBarycentricFeaturesNV,
 FromCStruct PhysicalDeviceFragmentShaderBarycentricFeaturesNV,
 ToCStruct PhysicalDeviceFragmentShaderBarycentricFeaturesNV,
 Show PhysicalDeviceFragmentShaderBarycentricFeaturesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceFragmentShaderBarycentricFeaturesNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV -> (Typeable PhysicalDeviceShaderImageFootprintFeaturesNV,
 FromCStruct PhysicalDeviceShaderImageFootprintFeaturesNV,
 ToCStruct PhysicalDeviceShaderImageFootprintFeaturesNV,
 Show PhysicalDeviceShaderImageFootprintFeaturesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShaderImageFootprintFeaturesNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV -> (Typeable PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV,
 FromCStruct
   PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV,
 ToCStruct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV,
 Show PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
  StructureType
STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV -> (Typeable PipelineViewportShadingRateImageStateCreateInfoNV,
 FromCStruct PipelineViewportShadingRateImageStateCreateInfoNV,
 ToCStruct PipelineViewportShadingRateImageStateCreateInfoNV,
 Show PipelineViewportShadingRateImageStateCreateInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineViewportShadingRateImageStateCreateInfoNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV -> (Typeable PhysicalDeviceShadingRateImageFeaturesNV,
 FromCStruct PhysicalDeviceShadingRateImageFeaturesNV,
 ToCStruct PhysicalDeviceShadingRateImageFeaturesNV,
 Show PhysicalDeviceShadingRateImageFeaturesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShadingRateImageFeaturesNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV -> (Typeable PhysicalDeviceShadingRateImagePropertiesNV,
 FromCStruct PhysicalDeviceShadingRateImagePropertiesNV,
 ToCStruct PhysicalDeviceShadingRateImagePropertiesNV,
 Show PhysicalDeviceShadingRateImagePropertiesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShadingRateImagePropertiesNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI -> (Typeable PhysicalDeviceInvocationMaskFeaturesHUAWEI,
 FromCStruct PhysicalDeviceInvocationMaskFeaturesHUAWEI,
 ToCStruct PhysicalDeviceInvocationMaskFeaturesHUAWEI,
 Show PhysicalDeviceInvocationMaskFeaturesHUAWEI) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceInvocationMaskFeaturesHUAWEI
  StructureType
STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV -> (Typeable PipelineViewportCoarseSampleOrderStateCreateInfoNV,
 FromCStruct PipelineViewportCoarseSampleOrderStateCreateInfoNV,
 ToCStruct PipelineViewportCoarseSampleOrderStateCreateInfoNV,
 Show PipelineViewportCoarseSampleOrderStateCreateInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineViewportCoarseSampleOrderStateCreateInfoNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV -> (Typeable PhysicalDeviceMeshShaderFeaturesNV,
 FromCStruct PhysicalDeviceMeshShaderFeaturesNV,
 ToCStruct PhysicalDeviceMeshShaderFeaturesNV,
 Show PhysicalDeviceMeshShaderFeaturesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceMeshShaderFeaturesNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV -> (Typeable PhysicalDeviceMeshShaderPropertiesNV,
 FromCStruct PhysicalDeviceMeshShaderPropertiesNV,
 ToCStruct PhysicalDeviceMeshShaderPropertiesNV,
 Show PhysicalDeviceMeshShaderPropertiesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceMeshShaderPropertiesNV
  StructureType
STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR -> (Typeable WriteDescriptorSetAccelerationStructureKHR,
 FromCStruct WriteDescriptorSetAccelerationStructureKHR,
 ToCStruct WriteDescriptorSetAccelerationStructureKHR,
 Show WriteDescriptorSetAccelerationStructureKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @WriteDescriptorSetAccelerationStructureKHR
  StructureType
STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV -> (Typeable WriteDescriptorSetAccelerationStructureNV,
 FromCStruct WriteDescriptorSetAccelerationStructureNV,
 ToCStruct WriteDescriptorSetAccelerationStructureNV,
 Show WriteDescriptorSetAccelerationStructureNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @WriteDescriptorSetAccelerationStructureNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR -> (Typeable PhysicalDeviceAccelerationStructureFeaturesKHR,
 FromCStruct PhysicalDeviceAccelerationStructureFeaturesKHR,
 ToCStruct PhysicalDeviceAccelerationStructureFeaturesKHR,
 Show PhysicalDeviceAccelerationStructureFeaturesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceAccelerationStructureFeaturesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR -> (Typeable PhysicalDeviceRayTracingPipelineFeaturesKHR,
 FromCStruct PhysicalDeviceRayTracingPipelineFeaturesKHR,
 ToCStruct PhysicalDeviceRayTracingPipelineFeaturesKHR,
 Show PhysicalDeviceRayTracingPipelineFeaturesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceRayTracingPipelineFeaturesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR -> (Typeable PhysicalDeviceRayQueryFeaturesKHR,
 FromCStruct PhysicalDeviceRayQueryFeaturesKHR,
 ToCStruct PhysicalDeviceRayQueryFeaturesKHR,
 Show PhysicalDeviceRayQueryFeaturesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceRayQueryFeaturesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR -> (Typeable PhysicalDeviceAccelerationStructurePropertiesKHR,
 FromCStruct PhysicalDeviceAccelerationStructurePropertiesKHR,
 ToCStruct PhysicalDeviceAccelerationStructurePropertiesKHR,
 Show PhysicalDeviceAccelerationStructurePropertiesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceAccelerationStructurePropertiesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR -> (Typeable PhysicalDeviceRayTracingPipelinePropertiesKHR,
 FromCStruct PhysicalDeviceRayTracingPipelinePropertiesKHR,
 ToCStruct PhysicalDeviceRayTracingPipelinePropertiesKHR,
 Show PhysicalDeviceRayTracingPipelinePropertiesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceRayTracingPipelinePropertiesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV -> (Typeable PhysicalDeviceRayTracingPropertiesNV,
 FromCStruct PhysicalDeviceRayTracingPropertiesNV,
 ToCStruct PhysicalDeviceRayTracingPropertiesNV,
 Show PhysicalDeviceRayTracingPropertiesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceRayTracingPropertiesNV
  StructureType
STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT -> (Typeable DrmFormatModifierPropertiesListEXT,
 FromCStruct DrmFormatModifierPropertiesListEXT,
 ToCStruct DrmFormatModifierPropertiesListEXT,
 Show DrmFormatModifierPropertiesListEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DrmFormatModifierPropertiesListEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT -> (Typeable PhysicalDeviceImageDrmFormatModifierInfoEXT,
 FromCStruct PhysicalDeviceImageDrmFormatModifierInfoEXT,
 ToCStruct PhysicalDeviceImageDrmFormatModifierInfoEXT,
 Show PhysicalDeviceImageDrmFormatModifierInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceImageDrmFormatModifierInfoEXT
  StructureType
STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT -> (Typeable ImageDrmFormatModifierListCreateInfoEXT,
 FromCStruct ImageDrmFormatModifierListCreateInfoEXT,
 ToCStruct ImageDrmFormatModifierListCreateInfoEXT,
 Show ImageDrmFormatModifierListCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ImageDrmFormatModifierListCreateInfoEXT
  StructureType
STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT -> (Typeable ImageDrmFormatModifierExplicitCreateInfoEXT,
 FromCStruct ImageDrmFormatModifierExplicitCreateInfoEXT,
 ToCStruct ImageDrmFormatModifierExplicitCreateInfoEXT,
 Show ImageDrmFormatModifierExplicitCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ImageDrmFormatModifierExplicitCreateInfoEXT
  StructureType
STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO -> (Typeable ImageStencilUsageCreateInfo,
 FromCStruct ImageStencilUsageCreateInfo,
 ToCStruct ImageStencilUsageCreateInfo,
 Show ImageStencilUsageCreateInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ImageStencilUsageCreateInfo
  StructureType
STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD -> (Typeable DeviceMemoryOverallocationCreateInfoAMD,
 FromCStruct DeviceMemoryOverallocationCreateInfoAMD,
 ToCStruct DeviceMemoryOverallocationCreateInfoAMD,
 Show DeviceMemoryOverallocationCreateInfoAMD) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DeviceMemoryOverallocationCreateInfoAMD
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT -> (Typeable PhysicalDeviceFragmentDensityMapFeaturesEXT,
 FromCStruct PhysicalDeviceFragmentDensityMapFeaturesEXT,
 ToCStruct PhysicalDeviceFragmentDensityMapFeaturesEXT,
 Show PhysicalDeviceFragmentDensityMapFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceFragmentDensityMapFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT -> (Typeable PhysicalDeviceFragmentDensityMap2FeaturesEXT,
 FromCStruct PhysicalDeviceFragmentDensityMap2FeaturesEXT,
 ToCStruct PhysicalDeviceFragmentDensityMap2FeaturesEXT,
 Show PhysicalDeviceFragmentDensityMap2FeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceFragmentDensityMap2FeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT -> (Typeable PhysicalDeviceFragmentDensityMapPropertiesEXT,
 FromCStruct PhysicalDeviceFragmentDensityMapPropertiesEXT,
 ToCStruct PhysicalDeviceFragmentDensityMapPropertiesEXT,
 Show PhysicalDeviceFragmentDensityMapPropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceFragmentDensityMapPropertiesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT -> (Typeable PhysicalDeviceFragmentDensityMap2PropertiesEXT,
 FromCStruct PhysicalDeviceFragmentDensityMap2PropertiesEXT,
 ToCStruct PhysicalDeviceFragmentDensityMap2PropertiesEXT,
 Show PhysicalDeviceFragmentDensityMap2PropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceFragmentDensityMap2PropertiesEXT
  StructureType
STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT -> (Typeable RenderPassFragmentDensityMapCreateInfoEXT,
 FromCStruct RenderPassFragmentDensityMapCreateInfoEXT,
 ToCStruct RenderPassFragmentDensityMapCreateInfoEXT,
 Show RenderPassFragmentDensityMapCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @RenderPassFragmentDensityMapCreateInfoEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES -> (Typeable PhysicalDeviceScalarBlockLayoutFeatures,
 FromCStruct PhysicalDeviceScalarBlockLayoutFeatures,
 ToCStruct PhysicalDeviceScalarBlockLayoutFeatures,
 Show PhysicalDeviceScalarBlockLayoutFeatures) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceScalarBlockLayoutFeatures
  StructureType
STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR -> (Typeable SurfaceProtectedCapabilitiesKHR,
 FromCStruct SurfaceProtectedCapabilitiesKHR,
 ToCStruct SurfaceProtectedCapabilitiesKHR,
 Show SurfaceProtectedCapabilitiesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @SurfaceProtectedCapabilitiesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES -> (Typeable PhysicalDeviceUniformBufferStandardLayoutFeatures,
 FromCStruct PhysicalDeviceUniformBufferStandardLayoutFeatures,
 ToCStruct PhysicalDeviceUniformBufferStandardLayoutFeatures,
 Show PhysicalDeviceUniformBufferStandardLayoutFeatures) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceUniformBufferStandardLayoutFeatures
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT -> (Typeable PhysicalDeviceDepthClipEnableFeaturesEXT,
 FromCStruct PhysicalDeviceDepthClipEnableFeaturesEXT,
 ToCStruct PhysicalDeviceDepthClipEnableFeaturesEXT,
 Show PhysicalDeviceDepthClipEnableFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceDepthClipEnableFeaturesEXT
  StructureType
STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT -> (Typeable PipelineRasterizationDepthClipStateCreateInfoEXT,
 FromCStruct PipelineRasterizationDepthClipStateCreateInfoEXT,
 ToCStruct PipelineRasterizationDepthClipStateCreateInfoEXT,
 Show PipelineRasterizationDepthClipStateCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineRasterizationDepthClipStateCreateInfoEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT -> (Typeable PhysicalDeviceMemoryBudgetPropertiesEXT,
 FromCStruct PhysicalDeviceMemoryBudgetPropertiesEXT,
 ToCStruct PhysicalDeviceMemoryBudgetPropertiesEXT,
 Show PhysicalDeviceMemoryBudgetPropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceMemoryBudgetPropertiesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT -> (Typeable PhysicalDeviceMemoryPriorityFeaturesEXT,
 FromCStruct PhysicalDeviceMemoryPriorityFeaturesEXT,
 ToCStruct PhysicalDeviceMemoryPriorityFeaturesEXT,
 Show PhysicalDeviceMemoryPriorityFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceMemoryPriorityFeaturesEXT
  StructureType
STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT -> (Typeable MemoryPriorityAllocateInfoEXT,
 FromCStruct MemoryPriorityAllocateInfoEXT,
 ToCStruct MemoryPriorityAllocateInfoEXT,
 Show MemoryPriorityAllocateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @MemoryPriorityAllocateInfoEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT -> (Typeable PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT,
 FromCStruct PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT,
 ToCStruct PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT,
 Show PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES -> (Typeable PhysicalDeviceBufferDeviceAddressFeatures,
 FromCStruct PhysicalDeviceBufferDeviceAddressFeatures,
 ToCStruct PhysicalDeviceBufferDeviceAddressFeatures,
 Show PhysicalDeviceBufferDeviceAddressFeatures) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceBufferDeviceAddressFeatures
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT -> (Typeable PhysicalDeviceBufferDeviceAddressFeaturesEXT,
 FromCStruct PhysicalDeviceBufferDeviceAddressFeaturesEXT,
 ToCStruct PhysicalDeviceBufferDeviceAddressFeaturesEXT,
 Show PhysicalDeviceBufferDeviceAddressFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceBufferDeviceAddressFeaturesEXT
  StructureType
STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO -> (Typeable BufferOpaqueCaptureAddressCreateInfo,
 FromCStruct BufferOpaqueCaptureAddressCreateInfo,
 ToCStruct BufferOpaqueCaptureAddressCreateInfo,
 Show BufferOpaqueCaptureAddressCreateInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @BufferOpaqueCaptureAddressCreateInfo
  StructureType
STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT -> (Typeable BufferDeviceAddressCreateInfoEXT,
 FromCStruct BufferDeviceAddressCreateInfoEXT,
 ToCStruct BufferDeviceAddressCreateInfoEXT,
 Show BufferDeviceAddressCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @BufferDeviceAddressCreateInfoEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT -> (Typeable PhysicalDeviceImageViewImageFormatInfoEXT,
 FromCStruct PhysicalDeviceImageViewImageFormatInfoEXT,
 ToCStruct PhysicalDeviceImageViewImageFormatInfoEXT,
 Show PhysicalDeviceImageViewImageFormatInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceImageViewImageFormatInfoEXT
  StructureType
STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT -> (Typeable FilterCubicImageViewImageFormatPropertiesEXT,
 FromCStruct FilterCubicImageViewImageFormatPropertiesEXT,
 ToCStruct FilterCubicImageViewImageFormatPropertiesEXT,
 Show FilterCubicImageViewImageFormatPropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @FilterCubicImageViewImageFormatPropertiesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES -> (Typeable PhysicalDeviceImagelessFramebufferFeatures,
 FromCStruct PhysicalDeviceImagelessFramebufferFeatures,
 ToCStruct PhysicalDeviceImagelessFramebufferFeatures,
 Show PhysicalDeviceImagelessFramebufferFeatures) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceImagelessFramebufferFeatures
  StructureType
STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO -> (Typeable FramebufferAttachmentsCreateInfo,
 FromCStruct FramebufferAttachmentsCreateInfo,
 ToCStruct FramebufferAttachmentsCreateInfo,
 Show FramebufferAttachmentsCreateInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @FramebufferAttachmentsCreateInfo
  StructureType
STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO -> (Typeable RenderPassAttachmentBeginInfo,
 FromCStruct RenderPassAttachmentBeginInfo,
 ToCStruct RenderPassAttachmentBeginInfo,
 Show RenderPassAttachmentBeginInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @RenderPassAttachmentBeginInfo
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT -> (Typeable PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT,
 FromCStruct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT,
 ToCStruct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT,
 Show PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV -> (Typeable PhysicalDeviceCooperativeMatrixFeaturesNV,
 FromCStruct PhysicalDeviceCooperativeMatrixFeaturesNV,
 ToCStruct PhysicalDeviceCooperativeMatrixFeaturesNV,
 Show PhysicalDeviceCooperativeMatrixFeaturesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceCooperativeMatrixFeaturesNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV -> (Typeable PhysicalDeviceCooperativeMatrixPropertiesNV,
 FromCStruct PhysicalDeviceCooperativeMatrixPropertiesNV,
 ToCStruct PhysicalDeviceCooperativeMatrixPropertiesNV,
 Show PhysicalDeviceCooperativeMatrixPropertiesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceCooperativeMatrixPropertiesNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT -> (Typeable PhysicalDeviceYcbcrImageArraysFeaturesEXT,
 FromCStruct PhysicalDeviceYcbcrImageArraysFeaturesEXT,
 ToCStruct PhysicalDeviceYcbcrImageArraysFeaturesEXT,
 Show PhysicalDeviceYcbcrImageArraysFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceYcbcrImageArraysFeaturesEXT
  StructureType
STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP -> (Typeable PresentFrameTokenGGP, FromCStruct PresentFrameTokenGGP,
 ToCStruct PresentFrameTokenGGP, Show PresentFrameTokenGGP) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PresentFrameTokenGGP
  StructureType
STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT -> (Typeable PipelineCreationFeedbackCreateInfoEXT,
 FromCStruct PipelineCreationFeedbackCreateInfoEXT,
 ToCStruct PipelineCreationFeedbackCreateInfoEXT,
 Show PipelineCreationFeedbackCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineCreationFeedbackCreateInfoEXT
  StructureType
STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT -> (Typeable SurfaceFullScreenExclusiveInfoEXT,
 FromCStruct SurfaceFullScreenExclusiveInfoEXT,
 ToCStruct SurfaceFullScreenExclusiveInfoEXT,
 Show SurfaceFullScreenExclusiveInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @SurfaceFullScreenExclusiveInfoEXT
  StructureType
STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT -> (Typeable SurfaceFullScreenExclusiveWin32InfoEXT,
 FromCStruct SurfaceFullScreenExclusiveWin32InfoEXT,
 ToCStruct SurfaceFullScreenExclusiveWin32InfoEXT,
 Show SurfaceFullScreenExclusiveWin32InfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @SurfaceFullScreenExclusiveWin32InfoEXT
  StructureType
STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT -> (Typeable SurfaceCapabilitiesFullScreenExclusiveEXT,
 FromCStruct SurfaceCapabilitiesFullScreenExclusiveEXT,
 ToCStruct SurfaceCapabilitiesFullScreenExclusiveEXT,
 Show SurfaceCapabilitiesFullScreenExclusiveEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @SurfaceCapabilitiesFullScreenExclusiveEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR -> (Typeable PhysicalDevicePerformanceQueryFeaturesKHR,
 FromCStruct PhysicalDevicePerformanceQueryFeaturesKHR,
 ToCStruct PhysicalDevicePerformanceQueryFeaturesKHR,
 Show PhysicalDevicePerformanceQueryFeaturesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDevicePerformanceQueryFeaturesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR -> (Typeable PhysicalDevicePerformanceQueryPropertiesKHR,
 FromCStruct PhysicalDevicePerformanceQueryPropertiesKHR,
 ToCStruct PhysicalDevicePerformanceQueryPropertiesKHR,
 Show PhysicalDevicePerformanceQueryPropertiesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDevicePerformanceQueryPropertiesKHR
  StructureType
STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR -> (Typeable QueryPoolPerformanceCreateInfoKHR,
 FromCStruct QueryPoolPerformanceCreateInfoKHR,
 ToCStruct QueryPoolPerformanceCreateInfoKHR,
 Show QueryPoolPerformanceCreateInfoKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @QueryPoolPerformanceCreateInfoKHR
  StructureType
STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR -> (Typeable PerformanceQuerySubmitInfoKHR,
 FromCStruct PerformanceQuerySubmitInfoKHR,
 ToCStruct PerformanceQuerySubmitInfoKHR,
 Show PerformanceQuerySubmitInfoKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PerformanceQuerySubmitInfoKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV -> (Typeable PhysicalDeviceCoverageReductionModeFeaturesNV,
 FromCStruct PhysicalDeviceCoverageReductionModeFeaturesNV,
 ToCStruct PhysicalDeviceCoverageReductionModeFeaturesNV,
 Show PhysicalDeviceCoverageReductionModeFeaturesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceCoverageReductionModeFeaturesNV
  StructureType
STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV -> (Typeable PipelineCoverageReductionStateCreateInfoNV,
 FromCStruct PipelineCoverageReductionStateCreateInfoNV,
 ToCStruct PipelineCoverageReductionStateCreateInfoNV,
 Show PipelineCoverageReductionStateCreateInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineCoverageReductionStateCreateInfoNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL -> (Typeable PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL,
 FromCStruct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL,
 ToCStruct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL,
 Show PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
  StructureType
STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL -> (Typeable QueryPoolPerformanceQueryCreateInfoINTEL,
 FromCStruct QueryPoolPerformanceQueryCreateInfoINTEL,
 ToCStruct QueryPoolPerformanceQueryCreateInfoINTEL,
 Show QueryPoolPerformanceQueryCreateInfoINTEL) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @QueryPoolPerformanceQueryCreateInfoINTEL
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR -> (Typeable PhysicalDeviceShaderClockFeaturesKHR,
 FromCStruct PhysicalDeviceShaderClockFeaturesKHR,
 ToCStruct PhysicalDeviceShaderClockFeaturesKHR,
 Show PhysicalDeviceShaderClockFeaturesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShaderClockFeaturesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT -> (Typeable PhysicalDeviceIndexTypeUint8FeaturesEXT,
 FromCStruct PhysicalDeviceIndexTypeUint8FeaturesEXT,
 ToCStruct PhysicalDeviceIndexTypeUint8FeaturesEXT,
 Show PhysicalDeviceIndexTypeUint8FeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceIndexTypeUint8FeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV -> (Typeable PhysicalDeviceShaderSMBuiltinsPropertiesNV,
 FromCStruct PhysicalDeviceShaderSMBuiltinsPropertiesNV,
 ToCStruct PhysicalDeviceShaderSMBuiltinsPropertiesNV,
 Show PhysicalDeviceShaderSMBuiltinsPropertiesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShaderSMBuiltinsPropertiesNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV -> (Typeable PhysicalDeviceShaderSMBuiltinsFeaturesNV,
 FromCStruct PhysicalDeviceShaderSMBuiltinsFeaturesNV,
 ToCStruct PhysicalDeviceShaderSMBuiltinsFeaturesNV,
 Show PhysicalDeviceShaderSMBuiltinsFeaturesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShaderSMBuiltinsFeaturesNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT -> (Typeable PhysicalDeviceFragmentShaderInterlockFeaturesEXT,
 FromCStruct PhysicalDeviceFragmentShaderInterlockFeaturesEXT,
 ToCStruct PhysicalDeviceFragmentShaderInterlockFeaturesEXT,
 Show PhysicalDeviceFragmentShaderInterlockFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceFragmentShaderInterlockFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES -> (Typeable PhysicalDeviceSeparateDepthStencilLayoutsFeatures,
 FromCStruct PhysicalDeviceSeparateDepthStencilLayoutsFeatures,
 ToCStruct PhysicalDeviceSeparateDepthStencilLayoutsFeatures,
 Show PhysicalDeviceSeparateDepthStencilLayoutsFeatures) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceSeparateDepthStencilLayoutsFeatures
  StructureType
STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT -> (Typeable AttachmentReferenceStencilLayout,
 FromCStruct AttachmentReferenceStencilLayout,
 ToCStruct AttachmentReferenceStencilLayout,
 Show AttachmentReferenceStencilLayout) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @AttachmentReferenceStencilLayout
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT -> (Typeable PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT,
 FromCStruct PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT,
 ToCStruct PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT,
 Show PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
  StructureType
STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT -> (Typeable AttachmentDescriptionStencilLayout,
 FromCStruct AttachmentDescriptionStencilLayout,
 ToCStruct AttachmentDescriptionStencilLayout,
 Show AttachmentDescriptionStencilLayout) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @AttachmentDescriptionStencilLayout
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR -> (Typeable PhysicalDevicePipelineExecutablePropertiesFeaturesKHR,
 FromCStruct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR,
 ToCStruct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR,
 Show PhysicalDevicePipelineExecutablePropertiesFeaturesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT -> (Typeable PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT,
 FromCStruct
   PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT,
 ToCStruct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT,
 Show PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT -> (Typeable PhysicalDeviceTexelBufferAlignmentFeaturesEXT,
 FromCStruct PhysicalDeviceTexelBufferAlignmentFeaturesEXT,
 ToCStruct PhysicalDeviceTexelBufferAlignmentFeaturesEXT,
 Show PhysicalDeviceTexelBufferAlignmentFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceTexelBufferAlignmentFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT -> (Typeable PhysicalDeviceTexelBufferAlignmentPropertiesEXT,
 FromCStruct PhysicalDeviceTexelBufferAlignmentPropertiesEXT,
 ToCStruct PhysicalDeviceTexelBufferAlignmentPropertiesEXT,
 Show PhysicalDeviceTexelBufferAlignmentPropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceTexelBufferAlignmentPropertiesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT -> (Typeable PhysicalDeviceSubgroupSizeControlFeaturesEXT,
 FromCStruct PhysicalDeviceSubgroupSizeControlFeaturesEXT,
 ToCStruct PhysicalDeviceSubgroupSizeControlFeaturesEXT,
 Show PhysicalDeviceSubgroupSizeControlFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceSubgroupSizeControlFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT -> (Typeable PhysicalDeviceSubgroupSizeControlPropertiesEXT,
 FromCStruct PhysicalDeviceSubgroupSizeControlPropertiesEXT,
 ToCStruct PhysicalDeviceSubgroupSizeControlPropertiesEXT,
 Show PhysicalDeviceSubgroupSizeControlPropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceSubgroupSizeControlPropertiesEXT
  StructureType
STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT -> (Typeable PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT,
 FromCStruct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT,
 ToCStruct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT,
 Show PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT
  StructureType
STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI -> (Typeable SubpassShadingPipelineCreateInfoHUAWEI,
 FromCStruct SubpassShadingPipelineCreateInfoHUAWEI,
 ToCStruct SubpassShadingPipelineCreateInfoHUAWEI,
 Show SubpassShadingPipelineCreateInfoHUAWEI) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @SubpassShadingPipelineCreateInfoHUAWEI
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI -> (Typeable PhysicalDeviceSubpassShadingPropertiesHUAWEI,
 FromCStruct PhysicalDeviceSubpassShadingPropertiesHUAWEI,
 ToCStruct PhysicalDeviceSubpassShadingPropertiesHUAWEI,
 Show PhysicalDeviceSubpassShadingPropertiesHUAWEI) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceSubpassShadingPropertiesHUAWEI
  StructureType
STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO -> (Typeable MemoryOpaqueCaptureAddressAllocateInfo,
 FromCStruct MemoryOpaqueCaptureAddressAllocateInfo,
 ToCStruct MemoryOpaqueCaptureAddressAllocateInfo,
 Show MemoryOpaqueCaptureAddressAllocateInfo) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @MemoryOpaqueCaptureAddressAllocateInfo
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT -> (Typeable PhysicalDeviceLineRasterizationFeaturesEXT,
 FromCStruct PhysicalDeviceLineRasterizationFeaturesEXT,
 ToCStruct PhysicalDeviceLineRasterizationFeaturesEXT,
 Show PhysicalDeviceLineRasterizationFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceLineRasterizationFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT -> (Typeable PhysicalDeviceLineRasterizationPropertiesEXT,
 FromCStruct PhysicalDeviceLineRasterizationPropertiesEXT,
 ToCStruct PhysicalDeviceLineRasterizationPropertiesEXT,
 Show PhysicalDeviceLineRasterizationPropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceLineRasterizationPropertiesEXT
  StructureType
STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT -> (Typeable PipelineRasterizationLineStateCreateInfoEXT,
 FromCStruct PipelineRasterizationLineStateCreateInfoEXT,
 ToCStruct PipelineRasterizationLineStateCreateInfoEXT,
 Show PipelineRasterizationLineStateCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineRasterizationLineStateCreateInfoEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT -> (Typeable PhysicalDevicePipelineCreationCacheControlFeaturesEXT,
 FromCStruct PhysicalDevicePipelineCreationCacheControlFeaturesEXT,
 ToCStruct PhysicalDevicePipelineCreationCacheControlFeaturesEXT,
 Show PhysicalDevicePipelineCreationCacheControlFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDevicePipelineCreationCacheControlFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES -> (Typeable PhysicalDeviceVulkan11Features,
 FromCStruct PhysicalDeviceVulkan11Features,
 ToCStruct PhysicalDeviceVulkan11Features,
 Show PhysicalDeviceVulkan11Features) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceVulkan11Features
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES -> (Typeable PhysicalDeviceVulkan11Properties,
 FromCStruct PhysicalDeviceVulkan11Properties,
 ToCStruct PhysicalDeviceVulkan11Properties,
 Show PhysicalDeviceVulkan11Properties) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceVulkan11Properties
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES -> (Typeable PhysicalDeviceVulkan12Features,
 FromCStruct PhysicalDeviceVulkan12Features,
 ToCStruct PhysicalDeviceVulkan12Features,
 Show PhysicalDeviceVulkan12Features) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceVulkan12Features
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES -> (Typeable PhysicalDeviceVulkan12Properties,
 FromCStruct PhysicalDeviceVulkan12Properties,
 ToCStruct PhysicalDeviceVulkan12Properties,
 Show PhysicalDeviceVulkan12Properties) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceVulkan12Properties
  StructureType
STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD -> (Typeable PipelineCompilerControlCreateInfoAMD,
 FromCStruct PipelineCompilerControlCreateInfoAMD,
 ToCStruct PipelineCompilerControlCreateInfoAMD,
 Show PipelineCompilerControlCreateInfoAMD) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineCompilerControlCreateInfoAMD
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD -> (Typeable PhysicalDeviceCoherentMemoryFeaturesAMD,
 FromCStruct PhysicalDeviceCoherentMemoryFeaturesAMD,
 ToCStruct PhysicalDeviceCoherentMemoryFeaturesAMD,
 Show PhysicalDeviceCoherentMemoryFeaturesAMD) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceCoherentMemoryFeaturesAMD
  StructureType
STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT -> IOException -> IO b
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO b) -> IOException -> IO b
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"peekChainHead" (String
"struct type STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT contains an undiscriminated union (ClearColorValue) and can't be safely peeked") Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT -> (Typeable PhysicalDeviceCustomBorderColorPropertiesEXT,
 FromCStruct PhysicalDeviceCustomBorderColorPropertiesEXT,
 ToCStruct PhysicalDeviceCustomBorderColorPropertiesEXT,
 Show PhysicalDeviceCustomBorderColorPropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceCustomBorderColorPropertiesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT -> (Typeable PhysicalDeviceCustomBorderColorFeaturesEXT,
 FromCStruct PhysicalDeviceCustomBorderColorFeaturesEXT,
 ToCStruct PhysicalDeviceCustomBorderColorFeaturesEXT,
 Show PhysicalDeviceCustomBorderColorFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceCustomBorderColorFeaturesEXT
  StructureType
STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT -> (Typeable SamplerBorderColorComponentMappingCreateInfoEXT,
 FromCStruct SamplerBorderColorComponentMappingCreateInfoEXT,
 ToCStruct SamplerBorderColorComponentMappingCreateInfoEXT,
 Show SamplerBorderColorComponentMappingCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @SamplerBorderColorComponentMappingCreateInfoEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT -> (Typeable PhysicalDeviceBorderColorSwizzleFeaturesEXT,
 FromCStruct PhysicalDeviceBorderColorSwizzleFeaturesEXT,
 ToCStruct PhysicalDeviceBorderColorSwizzleFeaturesEXT,
 Show PhysicalDeviceBorderColorSwizzleFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceBorderColorSwizzleFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT -> (Typeable PhysicalDeviceExtendedDynamicStateFeaturesEXT,
 FromCStruct PhysicalDeviceExtendedDynamicStateFeaturesEXT,
 ToCStruct PhysicalDeviceExtendedDynamicStateFeaturesEXT,
 Show PhysicalDeviceExtendedDynamicStateFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceExtendedDynamicStateFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT -> (Typeable PhysicalDeviceExtendedDynamicState2FeaturesEXT,
 FromCStruct PhysicalDeviceExtendedDynamicState2FeaturesEXT,
 ToCStruct PhysicalDeviceExtendedDynamicState2FeaturesEXT,
 Show PhysicalDeviceExtendedDynamicState2FeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceExtendedDynamicState2FeaturesEXT
  StructureType
STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM -> (Typeable RenderPassTransformBeginInfoQCOM,
 FromCStruct RenderPassTransformBeginInfoQCOM,
 ToCStruct RenderPassTransformBeginInfoQCOM,
 Show RenderPassTransformBeginInfoQCOM) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @RenderPassTransformBeginInfoQCOM
  StructureType
STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM -> (Typeable CopyCommandTransformInfoQCOM,
 FromCStruct CopyCommandTransformInfoQCOM,
 ToCStruct CopyCommandTransformInfoQCOM,
 Show CopyCommandTransformInfoQCOM) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @CopyCommandTransformInfoQCOM
  StructureType
STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM -> (Typeable CommandBufferInheritanceRenderPassTransformInfoQCOM,
 FromCStruct CommandBufferInheritanceRenderPassTransformInfoQCOM,
 ToCStruct CommandBufferInheritanceRenderPassTransformInfoQCOM,
 Show CommandBufferInheritanceRenderPassTransformInfoQCOM) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @CommandBufferInheritanceRenderPassTransformInfoQCOM
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV -> (Typeable PhysicalDeviceDiagnosticsConfigFeaturesNV,
 FromCStruct PhysicalDeviceDiagnosticsConfigFeaturesNV,
 ToCStruct PhysicalDeviceDiagnosticsConfigFeaturesNV,
 Show PhysicalDeviceDiagnosticsConfigFeaturesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceDiagnosticsConfigFeaturesNV
  StructureType
STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV -> (Typeable DeviceDiagnosticsConfigCreateInfoNV,
 FromCStruct DeviceDiagnosticsConfigCreateInfoNV,
 ToCStruct DeviceDiagnosticsConfigCreateInfoNV,
 Show DeviceDiagnosticsConfigCreateInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DeviceDiagnosticsConfigCreateInfoNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR -> (Typeable PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR,
 FromCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR,
 ToCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR,
 Show PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR -> (Typeable
   PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR,
 FromCStruct
   PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR,
 ToCStruct
   PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR,
 Show PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT -> (Typeable PhysicalDeviceRobustness2FeaturesEXT,
 FromCStruct PhysicalDeviceRobustness2FeaturesEXT,
 ToCStruct PhysicalDeviceRobustness2FeaturesEXT,
 Show PhysicalDeviceRobustness2FeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceRobustness2FeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT -> (Typeable PhysicalDeviceRobustness2PropertiesEXT,
 FromCStruct PhysicalDeviceRobustness2PropertiesEXT,
 ToCStruct PhysicalDeviceRobustness2PropertiesEXT,
 Show PhysicalDeviceRobustness2PropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceRobustness2PropertiesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT -> (Typeable PhysicalDeviceImageRobustnessFeaturesEXT,
 FromCStruct PhysicalDeviceImageRobustnessFeaturesEXT,
 ToCStruct PhysicalDeviceImageRobustnessFeaturesEXT,
 Show PhysicalDeviceImageRobustnessFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceImageRobustnessFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR -> (Typeable PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR,
 FromCStruct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR,
 ToCStruct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR,
 Show PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR -> (Typeable PhysicalDevicePortabilitySubsetFeaturesKHR,
 FromCStruct PhysicalDevicePortabilitySubsetFeaturesKHR,
 ToCStruct PhysicalDevicePortabilitySubsetFeaturesKHR,
 Show PhysicalDevicePortabilitySubsetFeaturesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDevicePortabilitySubsetFeaturesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR -> (Typeable PhysicalDevicePortabilitySubsetPropertiesKHR,
 FromCStruct PhysicalDevicePortabilitySubsetPropertiesKHR,
 ToCStruct PhysicalDevicePortabilitySubsetPropertiesKHR,
 Show PhysicalDevicePortabilitySubsetPropertiesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDevicePortabilitySubsetPropertiesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT -> (Typeable PhysicalDevice4444FormatsFeaturesEXT,
 FromCStruct PhysicalDevice4444FormatsFeaturesEXT,
 ToCStruct PhysicalDevice4444FormatsFeaturesEXT,
 Show PhysicalDevice4444FormatsFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDevice4444FormatsFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI -> (Typeable PhysicalDeviceSubpassShadingFeaturesHUAWEI,
 FromCStruct PhysicalDeviceSubpassShadingFeaturesHUAWEI,
 ToCStruct PhysicalDeviceSubpassShadingFeaturesHUAWEI,
 Show PhysicalDeviceSubpassShadingFeaturesHUAWEI) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceSubpassShadingFeaturesHUAWEI
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT -> (Typeable PhysicalDeviceShaderImageAtomicInt64FeaturesEXT,
 FromCStruct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT,
 ToCStruct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT,
 Show PhysicalDeviceShaderImageAtomicInt64FeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
  StructureType
STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR -> (Typeable FragmentShadingRateAttachmentInfoKHR,
 FromCStruct FragmentShadingRateAttachmentInfoKHR,
 ToCStruct FragmentShadingRateAttachmentInfoKHR,
 Show FragmentShadingRateAttachmentInfoKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @FragmentShadingRateAttachmentInfoKHR
  StructureType
STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR -> (Typeable PipelineFragmentShadingRateStateCreateInfoKHR,
 FromCStruct PipelineFragmentShadingRateStateCreateInfoKHR,
 ToCStruct PipelineFragmentShadingRateStateCreateInfoKHR,
 Show PipelineFragmentShadingRateStateCreateInfoKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineFragmentShadingRateStateCreateInfoKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR -> (Typeable PhysicalDeviceFragmentShadingRateFeaturesKHR,
 FromCStruct PhysicalDeviceFragmentShadingRateFeaturesKHR,
 ToCStruct PhysicalDeviceFragmentShadingRateFeaturesKHR,
 Show PhysicalDeviceFragmentShadingRateFeaturesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceFragmentShadingRateFeaturesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR -> (Typeable PhysicalDeviceFragmentShadingRatePropertiesKHR,
 FromCStruct PhysicalDeviceFragmentShadingRatePropertiesKHR,
 ToCStruct PhysicalDeviceFragmentShadingRatePropertiesKHR,
 Show PhysicalDeviceFragmentShadingRatePropertiesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceFragmentShadingRatePropertiesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR -> (Typeable PhysicalDeviceShaderTerminateInvocationFeaturesKHR,
 FromCStruct PhysicalDeviceShaderTerminateInvocationFeaturesKHR,
 ToCStruct PhysicalDeviceShaderTerminateInvocationFeaturesKHR,
 Show PhysicalDeviceShaderTerminateInvocationFeaturesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShaderTerminateInvocationFeaturesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV -> (Typeable PhysicalDeviceFragmentShadingRateEnumsFeaturesNV,
 FromCStruct PhysicalDeviceFragmentShadingRateEnumsFeaturesNV,
 ToCStruct PhysicalDeviceFragmentShadingRateEnumsFeaturesNV,
 Show PhysicalDeviceFragmentShadingRateEnumsFeaturesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV -> (Typeable PhysicalDeviceFragmentShadingRateEnumsPropertiesNV,
 FromCStruct PhysicalDeviceFragmentShadingRateEnumsPropertiesNV,
 ToCStruct PhysicalDeviceFragmentShadingRateEnumsPropertiesNV,
 Show PhysicalDeviceFragmentShadingRateEnumsPropertiesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
  StructureType
STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV -> (Typeable PipelineFragmentShadingRateEnumStateCreateInfoNV,
 FromCStruct PipelineFragmentShadingRateEnumStateCreateInfoNV,
 ToCStruct PipelineFragmentShadingRateEnumStateCreateInfoNV,
 Show PipelineFragmentShadingRateEnumStateCreateInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineFragmentShadingRateEnumStateCreateInfoNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE -> (Typeable PhysicalDeviceMutableDescriptorTypeFeaturesVALVE,
 FromCStruct PhysicalDeviceMutableDescriptorTypeFeaturesVALVE,
 ToCStruct PhysicalDeviceMutableDescriptorTypeFeaturesVALVE,
 Show PhysicalDeviceMutableDescriptorTypeFeaturesVALVE) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceMutableDescriptorTypeFeaturesVALVE
  StructureType
STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE -> (Typeable MutableDescriptorTypeCreateInfoVALVE,
 FromCStruct MutableDescriptorTypeCreateInfoVALVE,
 ToCStruct MutableDescriptorTypeCreateInfoVALVE,
 Show MutableDescriptorTypeCreateInfoVALVE) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @MutableDescriptorTypeCreateInfoVALVE
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT -> (Typeable PhysicalDeviceVertexInputDynamicStateFeaturesEXT,
 FromCStruct PhysicalDeviceVertexInputDynamicStateFeaturesEXT,
 ToCStruct PhysicalDeviceVertexInputDynamicStateFeaturesEXT,
 Show PhysicalDeviceVertexInputDynamicStateFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceVertexInputDynamicStateFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV -> (Typeable PhysicalDeviceExternalMemoryRDMAFeaturesNV,
 FromCStruct PhysicalDeviceExternalMemoryRDMAFeaturesNV,
 ToCStruct PhysicalDeviceExternalMemoryRDMAFeaturesNV,
 Show PhysicalDeviceExternalMemoryRDMAFeaturesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceExternalMemoryRDMAFeaturesNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT -> (Typeable PhysicalDeviceColorWriteEnableFeaturesEXT,
 FromCStruct PhysicalDeviceColorWriteEnableFeaturesEXT,
 ToCStruct PhysicalDeviceColorWriteEnableFeaturesEXT,
 Show PhysicalDeviceColorWriteEnableFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceColorWriteEnableFeaturesEXT
  StructureType
STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT -> (Typeable PipelineColorWriteCreateInfoEXT,
 FromCStruct PipelineColorWriteCreateInfoEXT,
 ToCStruct PipelineColorWriteCreateInfoEXT,
 Show PipelineColorWriteCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineColorWriteCreateInfoEXT
  StructureType
STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR -> (Typeable MemoryBarrier2KHR, FromCStruct MemoryBarrier2KHR,
 ToCStruct MemoryBarrier2KHR, Show MemoryBarrier2KHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @MemoryBarrier2KHR
  StructureType
STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV -> (Typeable QueueFamilyCheckpointProperties2NV,
 FromCStruct QueueFamilyCheckpointProperties2NV,
 ToCStruct QueueFamilyCheckpointProperties2NV,
 Show QueueFamilyCheckpointProperties2NV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @QueueFamilyCheckpointProperties2NV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR -> (Typeable PhysicalDeviceSynchronization2FeaturesKHR,
 FromCStruct PhysicalDeviceSynchronization2FeaturesKHR,
 ToCStruct PhysicalDeviceSynchronization2FeaturesKHR,
 Show PhysicalDeviceSynchronization2FeaturesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceSynchronization2FeaturesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV -> (Typeable PhysicalDeviceInheritedViewportScissorFeaturesNV,
 FromCStruct PhysicalDeviceInheritedViewportScissorFeaturesNV,
 ToCStruct PhysicalDeviceInheritedViewportScissorFeaturesNV,
 Show PhysicalDeviceInheritedViewportScissorFeaturesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceInheritedViewportScissorFeaturesNV
  StructureType
STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV -> (Typeable CommandBufferInheritanceViewportScissorInfoNV,
 FromCStruct CommandBufferInheritanceViewportScissorInfoNV,
 ToCStruct CommandBufferInheritanceViewportScissorInfoNV,
 Show CommandBufferInheritanceViewportScissorInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @CommandBufferInheritanceViewportScissorInfoNV
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT -> (Typeable PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT,
 FromCStruct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT,
 ToCStruct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT,
 Show PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT -> (Typeable PhysicalDeviceProvokingVertexFeaturesEXT,
 FromCStruct PhysicalDeviceProvokingVertexFeaturesEXT,
 ToCStruct PhysicalDeviceProvokingVertexFeaturesEXT,
 Show PhysicalDeviceProvokingVertexFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceProvokingVertexFeaturesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT -> (Typeable PhysicalDeviceProvokingVertexPropertiesEXT,
 FromCStruct PhysicalDeviceProvokingVertexPropertiesEXT,
 ToCStruct PhysicalDeviceProvokingVertexPropertiesEXT,
 Show PhysicalDeviceProvokingVertexPropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceProvokingVertexPropertiesEXT
  StructureType
STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT -> (Typeable PipelineRasterizationProvokingVertexStateCreateInfoEXT,
 FromCStruct PipelineRasterizationProvokingVertexStateCreateInfoEXT,
 ToCStruct PipelineRasterizationProvokingVertexStateCreateInfoEXT,
 Show PipelineRasterizationProvokingVertexStateCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineRasterizationProvokingVertexStateCreateInfoEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR -> (Typeable PhysicalDeviceShaderIntegerDotProductFeaturesKHR,
 FromCStruct PhysicalDeviceShaderIntegerDotProductFeaturesKHR,
 ToCStruct PhysicalDeviceShaderIntegerDotProductFeaturesKHR,
 Show PhysicalDeviceShaderIntegerDotProductFeaturesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShaderIntegerDotProductFeaturesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR -> (Typeable PhysicalDeviceShaderIntegerDotProductPropertiesKHR,
 FromCStruct PhysicalDeviceShaderIntegerDotProductPropertiesKHR,
 ToCStruct PhysicalDeviceShaderIntegerDotProductPropertiesKHR,
 Show PhysicalDeviceShaderIntegerDotProductPropertiesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceShaderIntegerDotProductPropertiesKHR
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT -> (Typeable PhysicalDeviceDrmPropertiesEXT,
 FromCStruct PhysicalDeviceDrmPropertiesEXT,
 ToCStruct PhysicalDeviceDrmPropertiesEXT,
 Show PhysicalDeviceDrmPropertiesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceDrmPropertiesEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV -> (Typeable PhysicalDeviceRayTracingMotionBlurFeaturesNV,
 FromCStruct PhysicalDeviceRayTracingMotionBlurFeaturesNV,
 ToCStruct PhysicalDeviceRayTracingMotionBlurFeaturesNV,
 Show PhysicalDeviceRayTracingMotionBlurFeaturesNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceRayTracingMotionBlurFeaturesNV
  StructureType
STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV -> IOException -> IO b
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO b) -> IOException -> IO b
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"peekChainHead" (String
"struct type STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV contains an undiscriminated union (DeviceOrHostAddressConstKHR) and can't be safely peeked") Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
  StructureType
STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV -> (Typeable AccelerationStructureMotionInfoNV,
 FromCStruct AccelerationStructureMotionInfoNV,
 ToCStruct AccelerationStructureMotionInfoNV,
 Show AccelerationStructureMotionInfoNV) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @AccelerationStructureMotionInfoNV
  StructureType
STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA -> (Typeable ImportMemoryBufferCollectionFUCHSIA,
 FromCStruct ImportMemoryBufferCollectionFUCHSIA,
 ToCStruct ImportMemoryBufferCollectionFUCHSIA,
 Show ImportMemoryBufferCollectionFUCHSIA) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ImportMemoryBufferCollectionFUCHSIA
  StructureType
STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA -> (Typeable BufferCollectionImageCreateInfoFUCHSIA,
 FromCStruct BufferCollectionImageCreateInfoFUCHSIA,
 ToCStruct BufferCollectionImageCreateInfoFUCHSIA,
 Show BufferCollectionImageCreateInfoFUCHSIA) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @BufferCollectionImageCreateInfoFUCHSIA
  StructureType
STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA -> (Typeable BufferCollectionBufferCreateInfoFUCHSIA,
 FromCStruct BufferCollectionBufferCreateInfoFUCHSIA,
 ToCStruct BufferCollectionBufferCreateInfoFUCHSIA,
 Show BufferCollectionBufferCreateInfoFUCHSIA) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @BufferCollectionBufferCreateInfoFUCHSIA
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT -> (Typeable PhysicalDeviceRGBA10X6FormatsFeaturesEXT,
 FromCStruct PhysicalDeviceRGBA10X6FormatsFeaturesEXT,
 ToCStruct PhysicalDeviceRGBA10X6FormatsFeaturesEXT,
 Show PhysicalDeviceRGBA10X6FormatsFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceRGBA10X6FormatsFeaturesEXT
  StructureType
STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR -> (Typeable FormatProperties3KHR, FromCStruct FormatProperties3KHR,
 ToCStruct FormatProperties3KHR, Show FormatProperties3KHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @FormatProperties3KHR
  StructureType
STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT -> (Typeable DrmFormatModifierPropertiesList2EXT,
 FromCStruct DrmFormatModifierPropertiesList2EXT,
 ToCStruct DrmFormatModifierPropertiesList2EXT,
 Show DrmFormatModifierPropertiesList2EXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @DrmFormatModifierPropertiesList2EXT
  StructureType
STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID -> (Typeable AndroidHardwareBufferFormatProperties2ANDROID,
 FromCStruct AndroidHardwareBufferFormatProperties2ANDROID,
 ToCStruct AndroidHardwareBufferFormatProperties2ANDROID,
 Show AndroidHardwareBufferFormatProperties2ANDROID) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @AndroidHardwareBufferFormatProperties2ANDROID
  StructureType
STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR -> (Typeable PipelineRenderingCreateInfoKHR,
 FromCStruct PipelineRenderingCreateInfoKHR,
 ToCStruct PipelineRenderingCreateInfoKHR,
 Show PipelineRenderingCreateInfoKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PipelineRenderingCreateInfoKHR
  StructureType
STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR -> (Typeable RenderingFragmentShadingRateAttachmentInfoKHR,
 FromCStruct RenderingFragmentShadingRateAttachmentInfoKHR,
 ToCStruct RenderingFragmentShadingRateAttachmentInfoKHR,
 Show RenderingFragmentShadingRateAttachmentInfoKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @RenderingFragmentShadingRateAttachmentInfoKHR
  StructureType
STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT -> (Typeable RenderingFragmentDensityMapAttachmentInfoEXT,
 FromCStruct RenderingFragmentDensityMapAttachmentInfoEXT,
 ToCStruct RenderingFragmentDensityMapAttachmentInfoEXT,
 Show RenderingFragmentDensityMapAttachmentInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @RenderingFragmentDensityMapAttachmentInfoEXT
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR -> (Typeable PhysicalDeviceDynamicRenderingFeaturesKHR,
 FromCStruct PhysicalDeviceDynamicRenderingFeaturesKHR,
 ToCStruct PhysicalDeviceDynamicRenderingFeaturesKHR,
 Show PhysicalDeviceDynamicRenderingFeaturesKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceDynamicRenderingFeaturesKHR
  StructureType
STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR -> (Typeable CommandBufferInheritanceRenderingInfoKHR,
 FromCStruct CommandBufferInheritanceRenderingInfoKHR,
 ToCStruct CommandBufferInheritanceRenderingInfoKHR,
 Show CommandBufferInheritanceRenderingInfoKHR) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @CommandBufferInheritanceRenderingInfoKHR
  StructureType
STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD -> (Typeable AttachmentSampleCountInfoAMD,
 FromCStruct AttachmentSampleCountInfoAMD,
 ToCStruct AttachmentSampleCountInfoAMD,
 Show AttachmentSampleCountInfoAMD) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @AttachmentSampleCountInfoAMD
  StructureType
STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX -> (Typeable MultiviewPerViewAttributesInfoNVX,
 FromCStruct MultiviewPerViewAttributesInfoNVX,
 ToCStruct MultiviewPerViewAttributesInfoNVX,
 Show MultiviewPerViewAttributesInfoNVX) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @MultiviewPerViewAttributesInfoNVX
  StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT -> (Typeable PhysicalDeviceImageViewMinLodFeaturesEXT,
 FromCStruct PhysicalDeviceImageViewMinLodFeaturesEXT,
 ToCStruct PhysicalDeviceImageViewMinLodFeaturesEXT,
 Show PhysicalDeviceImageViewMinLodFeaturesEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @PhysicalDeviceImageViewMinLodFeaturesEXT
  StructureType
STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT -> (Typeable ImageViewMinLodCreateInfoEXT,
 FromCStruct ImageViewMinLodCreateInfoEXT,
 ToCStruct ImageViewMinLodCreateInfoEXT,
 Show ImageViewMinLodCreateInfoEXT) =>
IO b
forall e. (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
go @ImageViewMinLodCreateInfoEXT
  StructureType
t -> IOException -> IO b
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO b) -> IOException -> IO b
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"peekChainHead" (String
"Unrecognized struct type: " String -> ShowS
forall a. Semigroup a => a -> a -> a
<> StructureType -> String
forall a. Show a => a -> String
show StructureType
t) Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
 where
  go :: forall e . (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
  go :: IO b
go =
    let r :: Maybe (IO b)
r = Proxy e -> (Extends a e => IO b) -> Maybe (IO b)
forall (a :: [*] -> *) e b (proxy :: * -> *).
(Extensible a, Typeable e) =>
proxy e -> (Extends a e => b) -> Maybe b
extends @a @e Proxy e
forall k (t :: k). Proxy t
Proxy ((Extends a e => IO b) -> Maybe (IO b))
-> (Extends a e => IO b) -> Maybe (IO b)
forall a b. (a -> b) -> a -> b
$ do
          e
head' <- Ptr e -> IO e
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @e (Ptr () -> Ptr e
forall a b. Ptr a -> Ptr b
castPtr Ptr ()
p)
          b -> IO b
forall (f :: * -> *) a. Applicative f => a -> f a
pure (b -> IO b) -> b -> IO b
forall a b. (a -> b) -> a -> b
$ e -> b
forall e. (Extends a e, ToCStruct e, Show e) => e -> b
c e
head'
    in  IO b -> Maybe (IO b) -> IO b
forall a. a -> Maybe a -> a
fromMaybe
          (IOException -> IO b
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO b) -> IOException -> IO b
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError
            Maybe Handle
forall a. Maybe a
Nothing
            IOErrorType
InvalidArgument
            String
"peekChainHead"
            (  String
"Illegal struct extension of "
            String -> ShowS
forall a. Semigroup a => a -> a -> a
<> Extensible a => String
forall (a :: [*] -> *). Extensible a => String
extensibleTypeName @a
            String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
" with "
            String -> ShowS
forall a. Semigroup a => a -> a -> a
<> StructureType -> String
forall a. Show a => a -> String
show StructureType
ty
            )
            Maybe CInt
forall a. Maybe a
Nothing
            Maybe String
forall a. Maybe a
Nothing
          )
          Maybe (IO b)
r

class Extensible (a :: [Type] -> Type) where
  extensibleTypeName :: String
  -- ^ For error reporting an invalid extension
  getNext :: a es -> Chain es
  setNext :: a ds -> Chain es -> a es
  extends :: forall e b proxy. Typeable e => proxy e -> (Extends a e => b) -> Maybe b

type family Chain (xs :: [a]) = (r :: a) | r -> xs where
  Chain '[]    = ()
  Chain (x:xs) = (x, Chain xs)

-- | A pattern synonym to separate the head of a struct chain from the
-- tail, use in conjunction with ':&' to extract several members.
--
-- @
-- Head{..} ::& () <- returningNoTail a b c
-- -- Equivalent to
-- Head{..} <- returningNoTail @'[] a b c
-- @
--
-- @
-- Head{..} ::& Foo{..} :& Bar{..} :& () <- returningWithTail a b c
-- @
--
-- @
-- myFun (Head{..} :&& Foo{..} :& ())
-- @
pattern (::&) :: Extensible a => a es' -> Chain es -> a es
pattern a $b::& :: a es' -> Chain es -> a es
$m::& :: forall r (a :: [*] -> *) (es :: [*]).
Extensible a =>
a es
-> (forall (es' :: [*]). a es' -> Chain es -> r)
-> (Void# -> r)
-> r
::& es <- (\a -> (a, getNext a) -> (a, es))
  where a es'
a ::& Chain es
es = a es' -> Chain es -> a es
forall (a :: [*] -> *) (ds :: [*]) (es :: [*]).
Extensible a =>
a ds -> Chain es -> a es
setNext a es'
a Chain es
es
infix 6 ::&
{-# complete (::&) :: DisplayPresentInfoKHR #-}
{-# complete (::&) :: DebugReportCallbackCreateInfoEXT #-}
{-# complete (::&) :: ValidationFlagsEXT #-}
{-# complete (::&) :: ValidationFeaturesEXT #-}
{-# complete (::&) :: PipelineRasterizationStateRasterizationOrderAMD #-}
{-# complete (::&) :: DedicatedAllocationImageCreateInfoNV #-}
{-# complete (::&) :: DedicatedAllocationBufferCreateInfoNV #-}
{-# complete (::&) :: DedicatedAllocationMemoryAllocateInfoNV #-}
{-# complete (::&) :: ExternalMemoryImageCreateInfoNV #-}
{-# complete (::&) :: ExportMemoryAllocateInfoNV #-}
{-# complete (::&) :: ImportMemoryWin32HandleInfoNV #-}
{-# complete (::&) :: ExportMemoryWin32HandleInfoNV #-}
{-# complete (::&) :: Win32KeyedMutexAcquireReleaseInfoNV #-}
{-# complete (::&) :: PhysicalDeviceDeviceGeneratedCommandsFeaturesNV #-}
{-# complete (::&) :: DevicePrivateDataCreateInfoEXT #-}
{-# complete (::&) :: PhysicalDevicePrivateDataFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceDeviceGeneratedCommandsPropertiesNV #-}
{-# complete (::&) :: PhysicalDeviceMultiDrawPropertiesEXT #-}
{-# complete (::&) :: GraphicsPipelineShaderGroupsCreateInfoNV #-}
{-# complete (::&) :: PhysicalDeviceFeatures2 #-}
{-# complete (::&) :: PhysicalDevicePushDescriptorPropertiesKHR #-}
{-# complete (::&) :: PhysicalDeviceDriverProperties #-}
{-# complete (::&) :: PresentRegionsKHR #-}
{-# complete (::&) :: PhysicalDeviceVariablePointersFeatures #-}
{-# complete (::&) :: PhysicalDeviceExternalImageFormatInfo #-}
{-# complete (::&) :: ExternalImageFormatProperties #-}
{-# complete (::&) :: PhysicalDeviceIDProperties #-}
{-# complete (::&) :: ExternalMemoryImageCreateInfo #-}
{-# complete (::&) :: ExternalMemoryBufferCreateInfo #-}
{-# complete (::&) :: ExportMemoryAllocateInfo #-}
{-# complete (::&) :: ImportMemoryWin32HandleInfoKHR #-}
{-# complete (::&) :: ExportMemoryWin32HandleInfoKHR #-}
{-# complete (::&) :: ImportMemoryZirconHandleInfoFUCHSIA #-}
{-# complete (::&) :: ImportMemoryFdInfoKHR #-}
{-# complete (::&) :: Win32KeyedMutexAcquireReleaseInfoKHR #-}
{-# complete (::&) :: ExportSemaphoreCreateInfo #-}
{-# complete (::&) :: ExportSemaphoreWin32HandleInfoKHR #-}
{-# complete (::&) :: D3D12FenceSubmitInfoKHR #-}
{-# complete (::&) :: ExportFenceCreateInfo #-}
{-# complete (::&) :: ExportFenceWin32HandleInfoKHR #-}
{-# complete (::&) :: PhysicalDeviceMultiviewFeatures #-}
{-# complete (::&) :: PhysicalDeviceMultiviewProperties #-}
{-# complete (::&) :: RenderPassMultiviewCreateInfo #-}
{-# complete (::&) :: SwapchainCounterCreateInfoEXT #-}
{-# complete (::&) :: MemoryAllocateFlagsInfo #-}
{-# complete (::&) :: BindBufferMemoryDeviceGroupInfo #-}
{-# complete (::&) :: BindImageMemoryDeviceGroupInfo #-}
{-# complete (::&) :: DeviceGroupRenderPassBeginInfo #-}
{-# complete (::&) :: DeviceGroupCommandBufferBeginInfo #-}
{-# complete (::&) :: DeviceGroupSubmitInfo #-}
{-# complete (::&) :: DeviceGroupBindSparseInfo #-}
{-# complete (::&) :: ImageSwapchainCreateInfoKHR #-}
{-# complete (::&) :: BindImageMemorySwapchainInfoKHR #-}
{-# complete (::&) :: DeviceGroupPresentInfoKHR #-}
{-# complete (::&) :: DeviceGroupDeviceCreateInfo #-}
{-# complete (::&) :: DeviceGroupSwapchainCreateInfoKHR #-}
{-# complete (::&) :: PhysicalDevicePresentIdFeaturesKHR #-}
{-# complete (::&) :: PresentIdKHR #-}
{-# complete (::&) :: PhysicalDevicePresentWaitFeaturesKHR #-}
{-# complete (::&) :: DisplayNativeHdrSurfaceCapabilitiesAMD #-}
{-# complete (::&) :: SwapchainDisplayNativeHdrCreateInfoAMD #-}
{-# complete (::&) :: PresentTimesInfoGOOGLE #-}
{-# complete (::&) :: PipelineViewportWScalingStateCreateInfoNV #-}
{-# complete (::&) :: PipelineViewportSwizzleStateCreateInfoNV #-}
{-# complete (::&) :: PhysicalDeviceDiscardRectanglePropertiesEXT #-}
{-# complete (::&) :: PipelineDiscardRectangleStateCreateInfoEXT #-}
{-# complete (::&) :: PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX #-}
{-# complete (::&) :: RenderPassInputAttachmentAspectCreateInfo #-}
{-# complete (::&) :: SharedPresentSurfaceCapabilitiesKHR #-}
{-# complete (::&) :: PhysicalDevice16BitStorageFeatures #-}
{-# complete (::&) :: PhysicalDeviceSubgroupProperties #-}
{-# complete (::&) :: PhysicalDeviceShaderSubgroupExtendedTypesFeatures #-}
{-# complete (::&) :: PhysicalDevicePointClippingProperties #-}
{-# complete (::&) :: MemoryDedicatedRequirements #-}
{-# complete (::&) :: MemoryDedicatedAllocateInfo #-}
{-# complete (::&) :: ImageViewUsageCreateInfo #-}
{-# complete (::&) :: PipelineTessellationDomainOriginStateCreateInfo #-}
{-# complete (::&) :: SamplerYcbcrConversionInfo #-}
{-# complete (::&) :: BindImagePlaneMemoryInfo #-}
{-# complete (::&) :: ImagePlaneMemoryRequirementsInfo #-}
{-# complete (::&) :: PhysicalDeviceSamplerYcbcrConversionFeatures #-}
{-# complete (::&) :: SamplerYcbcrConversionImageFormatProperties #-}
{-# complete (::&) :: TextureLODGatherFormatPropertiesAMD #-}
{-# complete (::&) :: ProtectedSubmitInfo #-}
{-# complete (::&) :: PhysicalDeviceProtectedMemoryFeatures #-}
{-# complete (::&) :: PhysicalDeviceProtectedMemoryProperties #-}
{-# complete (::&) :: PipelineCoverageToColorStateCreateInfoNV #-}
{-# complete (::&) :: PhysicalDeviceSamplerFilterMinmaxProperties #-}
{-# complete (::&) :: SampleLocationsInfoEXT #-}
{-# complete (::&) :: RenderPassSampleLocationsBeginInfoEXT #-}
{-# complete (::&) :: PipelineSampleLocationsStateCreateInfoEXT #-}
{-# complete (::&) :: PhysicalDeviceSampleLocationsPropertiesEXT #-}
{-# complete (::&) :: SamplerReductionModeCreateInfo #-}
{-# complete (::&) :: PhysicalDeviceBlendOperationAdvancedFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceMultiDrawFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceBlendOperationAdvancedPropertiesEXT #-}
{-# complete (::&) :: PipelineColorBlendAdvancedStateCreateInfoEXT #-}
{-# complete (::&) :: PhysicalDeviceInlineUniformBlockFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceInlineUniformBlockPropertiesEXT #-}
{-# complete (::&) :: WriteDescriptorSetInlineUniformBlockEXT #-}
{-# complete (::&) :: DescriptorPoolInlineUniformBlockCreateInfoEXT #-}
{-# complete (::&) :: PipelineCoverageModulationStateCreateInfoNV #-}
{-# complete (::&) :: ImageFormatListCreateInfo #-}
{-# complete (::&) :: ShaderModuleValidationCacheCreateInfoEXT #-}
{-# complete (::&) :: PhysicalDeviceMaintenance3Properties #-}
{-# complete (::&) :: PhysicalDeviceMaintenance4FeaturesKHR #-}
{-# complete (::&) :: PhysicalDeviceMaintenance4PropertiesKHR #-}
{-# complete (::&) :: PhysicalDeviceShaderDrawParametersFeatures #-}
{-# complete (::&) :: PhysicalDeviceShaderFloat16Int8Features #-}
{-# complete (::&) :: PhysicalDeviceFloatControlsProperties #-}
{-# complete (::&) :: PhysicalDeviceHostQueryResetFeatures #-}
{-# complete (::&) :: DeviceQueueGlobalPriorityCreateInfoEXT #-}
{-# complete (::&) :: PhysicalDeviceGlobalPriorityQueryFeaturesEXT #-}
{-# complete (::&) :: QueueFamilyGlobalPriorityPropertiesEXT #-}
{-# complete (::&) :: DebugUtilsMessengerCreateInfoEXT #-}
{-# complete (::&) :: PhysicalDeviceDeviceMemoryReportFeaturesEXT #-}
{-# complete (::&) :: DeviceDeviceMemoryReportCreateInfoEXT #-}
{-# complete (::&) :: ImportMemoryHostPointerInfoEXT #-}
{-# complete (::&) :: PhysicalDeviceExternalMemoryHostPropertiesEXT #-}
{-# complete (::&) :: PhysicalDeviceConservativeRasterizationPropertiesEXT #-}
{-# complete (::&) :: PhysicalDeviceShaderCorePropertiesAMD #-}
{-# complete (::&) :: PhysicalDeviceShaderCoreProperties2AMD #-}
{-# complete (::&) :: PipelineRasterizationConservativeStateCreateInfoEXT #-}
{-# complete (::&) :: PhysicalDeviceDescriptorIndexingFeatures #-}
{-# complete (::&) :: PhysicalDeviceDescriptorIndexingProperties #-}
{-# complete (::&) :: DescriptorSetLayoutBindingFlagsCreateInfo #-}
{-# complete (::&) :: DescriptorSetVariableDescriptorCountAllocateInfo #-}
{-# complete (::&) :: DescriptorSetVariableDescriptorCountLayoutSupport #-}
{-# complete (::&) :: PhysicalDeviceTimelineSemaphoreFeatures #-}
{-# complete (::&) :: PhysicalDeviceTimelineSemaphoreProperties #-}
{-# complete (::&) :: SemaphoreTypeCreateInfo #-}
{-# complete (::&) :: TimelineSemaphoreSubmitInfo #-}
{-# complete (::&) :: PipelineVertexInputDivisorStateCreateInfoEXT #-}
{-# complete (::&) :: PhysicalDeviceVertexAttributeDivisorPropertiesEXT #-}
{-# complete (::&) :: PhysicalDevicePCIBusInfoPropertiesEXT #-}
{-# complete (::&) :: ImportAndroidHardwareBufferInfoANDROID #-}
{-# complete (::&) :: AndroidHardwareBufferUsageANDROID #-}
{-# complete (::&) :: AndroidHardwareBufferFormatPropertiesANDROID #-}
{-# complete (::&) :: CommandBufferInheritanceConditionalRenderingInfoEXT #-}
{-# complete (::&) :: ExternalFormatANDROID #-}
{-# complete (::&) :: PhysicalDevice8BitStorageFeatures #-}
{-# complete (::&) :: PhysicalDeviceConditionalRenderingFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceVulkanMemoryModelFeatures #-}
{-# complete (::&) :: PhysicalDeviceShaderAtomicInt64Features #-}
{-# complete (::&) :: PhysicalDeviceShaderAtomicFloatFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceVertexAttributeDivisorFeaturesEXT #-}
{-# complete (::&) :: QueueFamilyCheckpointPropertiesNV #-}
{-# complete (::&) :: PhysicalDeviceDepthStencilResolveProperties #-}
{-# complete (::&) :: SubpassDescriptionDepthStencilResolve #-}
{-# complete (::&) :: ImageViewASTCDecodeModeEXT #-}
{-# complete (::&) :: PhysicalDeviceASTCDecodeFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceTransformFeedbackFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceTransformFeedbackPropertiesEXT #-}
{-# complete (::&) :: PipelineRasterizationStateStreamCreateInfoEXT #-}
{-# complete (::&) :: PhysicalDeviceRepresentativeFragmentTestFeaturesNV #-}
{-# complete (::&) :: PipelineRepresentativeFragmentTestStateCreateInfoNV #-}
{-# complete (::&) :: PhysicalDeviceExclusiveScissorFeaturesNV #-}
{-# complete (::&) :: PipelineViewportExclusiveScissorStateCreateInfoNV #-}
{-# complete (::&) :: PhysicalDeviceCornerSampledImageFeaturesNV #-}
{-# complete (::&) :: PhysicalDeviceComputeShaderDerivativesFeaturesNV #-}
{-# complete (::&) :: PhysicalDeviceFragmentShaderBarycentricFeaturesNV #-}
{-# complete (::&) :: PhysicalDeviceShaderImageFootprintFeaturesNV #-}
{-# complete (::&) :: PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV #-}
{-# complete (::&) :: PipelineViewportShadingRateImageStateCreateInfoNV #-}
{-# complete (::&) :: PhysicalDeviceShadingRateImageFeaturesNV #-}
{-# complete (::&) :: PhysicalDeviceShadingRateImagePropertiesNV #-}
{-# complete (::&) :: PhysicalDeviceInvocationMaskFeaturesHUAWEI #-}
{-# complete (::&) :: PipelineViewportCoarseSampleOrderStateCreateInfoNV #-}
{-# complete (::&) :: PhysicalDeviceMeshShaderFeaturesNV #-}
{-# complete (::&) :: PhysicalDeviceMeshShaderPropertiesNV #-}
{-# complete (::&) :: WriteDescriptorSetAccelerationStructureKHR #-}
{-# complete (::&) :: WriteDescriptorSetAccelerationStructureNV #-}
{-# complete (::&) :: PhysicalDeviceAccelerationStructureFeaturesKHR #-}
{-# complete (::&) :: PhysicalDeviceRayTracingPipelineFeaturesKHR #-}
{-# complete (::&) :: PhysicalDeviceRayQueryFeaturesKHR #-}
{-# complete (::&) :: PhysicalDeviceAccelerationStructurePropertiesKHR #-}
{-# complete (::&) :: PhysicalDeviceRayTracingPipelinePropertiesKHR #-}
{-# complete (::&) :: PhysicalDeviceRayTracingPropertiesNV #-}
{-# complete (::&) :: DrmFormatModifierPropertiesListEXT #-}
{-# complete (::&) :: PhysicalDeviceImageDrmFormatModifierInfoEXT #-}
{-# complete (::&) :: ImageDrmFormatModifierListCreateInfoEXT #-}
{-# complete (::&) :: ImageDrmFormatModifierExplicitCreateInfoEXT #-}
{-# complete (::&) :: ImageStencilUsageCreateInfo #-}
{-# complete (::&) :: DeviceMemoryOverallocationCreateInfoAMD #-}
{-# complete (::&) :: PhysicalDeviceFragmentDensityMapFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceFragmentDensityMap2FeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceFragmentDensityMapPropertiesEXT #-}
{-# complete (::&) :: PhysicalDeviceFragmentDensityMap2PropertiesEXT #-}
{-# complete (::&) :: RenderPassFragmentDensityMapCreateInfoEXT #-}
{-# complete (::&) :: PhysicalDeviceScalarBlockLayoutFeatures #-}
{-# complete (::&) :: SurfaceProtectedCapabilitiesKHR #-}
{-# complete (::&) :: PhysicalDeviceUniformBufferStandardLayoutFeatures #-}
{-# complete (::&) :: PhysicalDeviceDepthClipEnableFeaturesEXT #-}
{-# complete (::&) :: PipelineRasterizationDepthClipStateCreateInfoEXT #-}
{-# complete (::&) :: PhysicalDeviceMemoryBudgetPropertiesEXT #-}
{-# complete (::&) :: PhysicalDeviceMemoryPriorityFeaturesEXT #-}
{-# complete (::&) :: MemoryPriorityAllocateInfoEXT #-}
{-# complete (::&) :: PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceBufferDeviceAddressFeatures #-}
{-# complete (::&) :: PhysicalDeviceBufferDeviceAddressFeaturesEXT #-}
{-# complete (::&) :: BufferOpaqueCaptureAddressCreateInfo #-}
{-# complete (::&) :: BufferDeviceAddressCreateInfoEXT #-}
{-# complete (::&) :: PhysicalDeviceImageViewImageFormatInfoEXT #-}
{-# complete (::&) :: FilterCubicImageViewImageFormatPropertiesEXT #-}
{-# complete (::&) :: PhysicalDeviceImagelessFramebufferFeatures #-}
{-# complete (::&) :: FramebufferAttachmentsCreateInfo #-}
{-# complete (::&) :: RenderPassAttachmentBeginInfo #-}
{-# complete (::&) :: PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceCooperativeMatrixFeaturesNV #-}
{-# complete (::&) :: PhysicalDeviceCooperativeMatrixPropertiesNV #-}
{-# complete (::&) :: PhysicalDeviceYcbcrImageArraysFeaturesEXT #-}
{-# complete (::&) :: PresentFrameTokenGGP #-}
{-# complete (::&) :: PipelineCreationFeedbackCreateInfoEXT #-}
{-# complete (::&) :: SurfaceFullScreenExclusiveInfoEXT #-}
{-# complete (::&) :: SurfaceFullScreenExclusiveWin32InfoEXT #-}
{-# complete (::&) :: SurfaceCapabilitiesFullScreenExclusiveEXT #-}
{-# complete (::&) :: PhysicalDevicePerformanceQueryFeaturesKHR #-}
{-# complete (::&) :: PhysicalDevicePerformanceQueryPropertiesKHR #-}
{-# complete (::&) :: QueryPoolPerformanceCreateInfoKHR #-}
{-# complete (::&) :: PerformanceQuerySubmitInfoKHR #-}
{-# complete (::&) :: PhysicalDeviceCoverageReductionModeFeaturesNV #-}
{-# complete (::&) :: PipelineCoverageReductionStateCreateInfoNV #-}
{-# complete (::&) :: PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL #-}
{-# complete (::&) :: QueryPoolPerformanceQueryCreateInfoINTEL #-}
{-# complete (::&) :: PhysicalDeviceShaderClockFeaturesKHR #-}
{-# complete (::&) :: PhysicalDeviceIndexTypeUint8FeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceShaderSMBuiltinsPropertiesNV #-}
{-# complete (::&) :: PhysicalDeviceShaderSMBuiltinsFeaturesNV #-}
{-# complete (::&) :: PhysicalDeviceFragmentShaderInterlockFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceSeparateDepthStencilLayoutsFeatures #-}
{-# complete (::&) :: AttachmentReferenceStencilLayout #-}
{-# complete (::&) :: PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT #-}
{-# complete (::&) :: AttachmentDescriptionStencilLayout #-}
{-# complete (::&) :: PhysicalDevicePipelineExecutablePropertiesFeaturesKHR #-}
{-# complete (::&) :: PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceTexelBufferAlignmentFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceTexelBufferAlignmentPropertiesEXT #-}
{-# complete (::&) :: PhysicalDeviceSubgroupSizeControlFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceSubgroupSizeControlPropertiesEXT #-}
{-# complete (::&) :: PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT #-}
{-# complete (::&) :: SubpassShadingPipelineCreateInfoHUAWEI #-}
{-# complete (::&) :: PhysicalDeviceSubpassShadingPropertiesHUAWEI #-}
{-# complete (::&) :: MemoryOpaqueCaptureAddressAllocateInfo #-}
{-# complete (::&) :: PhysicalDeviceLineRasterizationFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceLineRasterizationPropertiesEXT #-}
{-# complete (::&) :: PipelineRasterizationLineStateCreateInfoEXT #-}
{-# complete (::&) :: PhysicalDevicePipelineCreationCacheControlFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceVulkan11Features #-}
{-# complete (::&) :: PhysicalDeviceVulkan11Properties #-}
{-# complete (::&) :: PhysicalDeviceVulkan12Features #-}
{-# complete (::&) :: PhysicalDeviceVulkan12Properties #-}
{-# complete (::&) :: PipelineCompilerControlCreateInfoAMD #-}
{-# complete (::&) :: PhysicalDeviceCoherentMemoryFeaturesAMD #-}
{-# complete (::&) :: SamplerCustomBorderColorCreateInfoEXT #-}
{-# complete (::&) :: PhysicalDeviceCustomBorderColorPropertiesEXT #-}
{-# complete (::&) :: PhysicalDeviceCustomBorderColorFeaturesEXT #-}
{-# complete (::&) :: SamplerBorderColorComponentMappingCreateInfoEXT #-}
{-# complete (::&) :: PhysicalDeviceBorderColorSwizzleFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceExtendedDynamicStateFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceExtendedDynamicState2FeaturesEXT #-}
{-# complete (::&) :: RenderPassTransformBeginInfoQCOM #-}
{-# complete (::&) :: CopyCommandTransformInfoQCOM #-}
{-# complete (::&) :: CommandBufferInheritanceRenderPassTransformInfoQCOM #-}
{-# complete (::&) :: PhysicalDeviceDiagnosticsConfigFeaturesNV #-}
{-# complete (::&) :: DeviceDiagnosticsConfigCreateInfoNV #-}
{-# complete (::&) :: PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR #-}
{-# complete (::&) :: PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR #-}
{-# complete (::&) :: PhysicalDeviceRobustness2FeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceRobustness2PropertiesEXT #-}
{-# complete (::&) :: PhysicalDeviceImageRobustnessFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR #-}
{-# complete (::&) :: PhysicalDevicePortabilitySubsetFeaturesKHR #-}
{-# complete (::&) :: PhysicalDevicePortabilitySubsetPropertiesKHR #-}
{-# complete (::&) :: PhysicalDevice4444FormatsFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceSubpassShadingFeaturesHUAWEI #-}
{-# complete (::&) :: PhysicalDeviceShaderImageAtomicInt64FeaturesEXT #-}
{-# complete (::&) :: FragmentShadingRateAttachmentInfoKHR #-}
{-# complete (::&) :: PipelineFragmentShadingRateStateCreateInfoKHR #-}
{-# complete (::&) :: PhysicalDeviceFragmentShadingRateFeaturesKHR #-}
{-# complete (::&) :: PhysicalDeviceFragmentShadingRatePropertiesKHR #-}
{-# complete (::&) :: PhysicalDeviceShaderTerminateInvocationFeaturesKHR #-}
{-# complete (::&) :: PhysicalDeviceFragmentShadingRateEnumsFeaturesNV #-}
{-# complete (::&) :: PhysicalDeviceFragmentShadingRateEnumsPropertiesNV #-}
{-# complete (::&) :: PipelineFragmentShadingRateEnumStateCreateInfoNV #-}
{-# complete (::&) :: PhysicalDeviceMutableDescriptorTypeFeaturesVALVE #-}
{-# complete (::&) :: MutableDescriptorTypeCreateInfoVALVE #-}
{-# complete (::&) :: PhysicalDeviceVertexInputDynamicStateFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceExternalMemoryRDMAFeaturesNV #-}
{-# complete (::&) :: PhysicalDeviceColorWriteEnableFeaturesEXT #-}
{-# complete (::&) :: PipelineColorWriteCreateInfoEXT #-}
{-# complete (::&) :: MemoryBarrier2KHR #-}
{-# complete (::&) :: QueueFamilyCheckpointProperties2NV #-}
{-# complete (::&) :: PhysicalDeviceSynchronization2FeaturesKHR #-}
{-# complete (::&) :: PhysicalDeviceInheritedViewportScissorFeaturesNV #-}
{-# complete (::&) :: CommandBufferInheritanceViewportScissorInfoNV #-}
{-# complete (::&) :: PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceProvokingVertexFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceProvokingVertexPropertiesEXT #-}
{-# complete (::&) :: PipelineRasterizationProvokingVertexStateCreateInfoEXT #-}
{-# complete (::&) :: PhysicalDeviceShaderIntegerDotProductFeaturesKHR #-}
{-# complete (::&) :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR #-}
{-# complete (::&) :: PhysicalDeviceDrmPropertiesEXT #-}
{-# complete (::&) :: PhysicalDeviceRayTracingMotionBlurFeaturesNV #-}
{-# complete (::&) :: AccelerationStructureGeometryMotionTrianglesDataNV #-}
{-# complete (::&) :: AccelerationStructureMotionInfoNV #-}
{-# complete (::&) :: ImportMemoryBufferCollectionFUCHSIA #-}
{-# complete (::&) :: BufferCollectionImageCreateInfoFUCHSIA #-}
{-# complete (::&) :: BufferCollectionBufferCreateInfoFUCHSIA #-}
{-# complete (::&) :: PhysicalDeviceRGBA10X6FormatsFeaturesEXT #-}
{-# complete (::&) :: FormatProperties3KHR #-}
{-# complete (::&) :: DrmFormatModifierPropertiesList2EXT #-}
{-# complete (::&) :: AndroidHardwareBufferFormatProperties2ANDROID #-}
{-# complete (::&) :: PipelineRenderingCreateInfoKHR #-}
{-# complete (::&) :: RenderingFragmentShadingRateAttachmentInfoKHR #-}
{-# complete (::&) :: RenderingFragmentDensityMapAttachmentInfoEXT #-}
{-# complete (::&) :: PhysicalDeviceDynamicRenderingFeaturesKHR #-}
{-# complete (::&) :: CommandBufferInheritanceRenderingInfoKHR #-}
{-# complete (::&) :: AttachmentSampleCountInfoAMD #-}
{-# complete (::&) :: MultiviewPerViewAttributesInfoNVX #-}
{-# complete (::&) :: PhysicalDeviceImageViewMinLodFeaturesEXT #-}
{-# complete (::&) :: ImageViewMinLodCreateInfoEXT #-}

-- | View the head and tail of a 'Chain', see '::&'
--
-- Equivalent to @(,)@
pattern (:&) :: e -> Chain es -> Chain (e:es)
pattern e $b:& :: e -> Chain es -> Chain (e : es)
$m:& :: forall r e (es :: [*]).
Chain (e : es) -> (e -> Chain es -> r) -> (Void# -> r) -> r
:& es = (e, es)
infixr 7 :&
{-# complete (:&) #-}

type family Extendss (p :: [Type] -> Type) (xs :: [Type]) :: Constraint where
  Extendss p '[]      = ()
  Extendss p (x : xs) = (Extends p x, Extendss p xs)

class PokeChain es where
  withChain :: Chain es -> (Ptr (Chain es) -> IO a) -> IO a
  withZeroChain :: (Ptr (Chain es) -> IO a) -> IO a

instance PokeChain '[] where
  withChain :: Chain '[] -> (Ptr (Chain '[]) -> IO a) -> IO a
withChain () Ptr (Chain '[]) -> IO a
f = Ptr (Chain '[]) -> IO a
f Ptr (Chain '[])
forall a. Ptr a
nullPtr
  withZeroChain :: (Ptr (Chain '[]) -> IO a) -> IO a
withZeroChain Ptr (Chain '[]) -> IO a
f = Ptr (Chain '[]) -> IO a
f Ptr (Chain '[])
forall a. Ptr a
nullPtr

instance (ToCStruct e, PokeChain es) => PokeChain (e:es) where
  withChain :: Chain (e : es) -> (Ptr (Chain (e : es)) -> IO a) -> IO a
withChain (e, es) Ptr (Chain (e : es)) -> IO a
f = ContT a IO a -> IO a
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT a IO a -> IO a) -> ContT a IO a -> IO a
forall a b. (a -> b) -> a -> b
$ do
    Ptr (Chain es)
t <- ((Ptr (Chain es) -> IO a) -> IO a) -> ContT a IO (Ptr (Chain es))
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (Chain es) -> IO a) -> IO a) -> ContT a IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO a) -> IO a)
-> ContT a IO (Ptr (Chain es))
forall a b. (a -> b) -> a -> b
$ Chain es -> (Ptr (Chain es) -> IO a) -> IO a
forall (es :: [*]) a.
PokeChain es =>
Chain es -> (Ptr (Chain es) -> IO a) -> IO a
withChain Chain es
es
    Ptr e
h <- ((Ptr e -> IO a) -> IO a) -> ContT a IO (Ptr e)
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr e -> IO a) -> IO a) -> ContT a IO (Ptr e))
-> ((Ptr e -> IO a) -> IO a) -> ContT a IO (Ptr e)
forall a b. (a -> b) -> a -> b
$ e -> (Ptr e -> IO a) -> IO a
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct e
e
    IO () -> ContT a IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT a IO ()) -> IO () -> ContT a IO ()
forall a b. (a -> b) -> a -> b
$ Ptr e -> Ptr (Chain es) -> IO ()
forall a b. Ptr a -> Ptr b -> IO ()
linkChain Ptr e
h Ptr (Chain es)
t
    IO a -> ContT a IO a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO a -> ContT a IO a) -> IO a -> ContT a IO a
forall a b. (a -> b) -> a -> b
$ Ptr (Chain (e : es)) -> IO a
f (Ptr e -> Ptr (e, Chain es)
forall a b. Ptr a -> Ptr b
castPtr Ptr e
h)
  withZeroChain :: (Ptr (Chain (e : es)) -> IO a) -> IO a
withZeroChain Ptr (Chain (e : es)) -> IO a
f = ContT a IO a -> IO a
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT a IO a -> IO a) -> ContT a IO a -> IO a
forall a b. (a -> b) -> a -> b
$ do
    Ptr (Chain es)
t <- ((Ptr (Chain es) -> IO a) -> IO a) -> ContT a IO (Ptr (Chain es))
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (Chain es) -> IO a) -> IO a) -> ContT a IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO a) -> IO a)
-> ContT a IO (Ptr (Chain es))
forall a b. (a -> b) -> a -> b
$ forall a. PokeChain es => (Ptr (Chain es) -> IO a) -> IO a
forall (es :: [*]) a.
PokeChain es =>
(Ptr (Chain es) -> IO a) -> IO a
withZeroChain @es
    Ptr e
h <- ((Ptr e -> IO a) -> IO a) -> ContT a IO (Ptr e)
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr e -> IO a) -> IO a) -> ContT a IO (Ptr e))
-> ((Ptr e -> IO a) -> IO a) -> ContT a IO (Ptr e)
forall a b. (a -> b) -> a -> b
$ forall b. ToCStruct e => (Ptr e -> IO b) -> IO b
forall a b. ToCStruct a => (Ptr a -> IO b) -> IO b
withZeroCStruct @e
    IO () -> ContT a IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT a IO ()) -> IO () -> ContT a IO ()
forall a b. (a -> b) -> a -> b
$ Ptr e -> Ptr (Chain es) -> IO ()
forall a b. Ptr a -> Ptr b -> IO ()
linkChain Ptr e
h Ptr (Chain es)
t
    IO a -> ContT a IO a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO a -> ContT a IO a) -> IO a -> ContT a IO a
forall a b. (a -> b) -> a -> b
$ Ptr (Chain (e : es)) -> IO a
f (Ptr e -> Ptr (e, Chain es)
forall a b. Ptr a -> Ptr b
castPtr Ptr e
h)

class PeekChain es where
  peekChain :: Ptr (Chain es) -> IO (Chain es)

instance PeekChain '[] where
  peekChain :: Ptr (Chain '[]) -> IO (Chain '[])
peekChain Ptr (Chain '[])
_ = () -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()

instance (FromCStruct e, PeekChain es) => PeekChain (e:es) where
  peekChain :: Ptr (Chain (e : es)) -> IO (Chain (e : es))
peekChain Ptr (Chain (e : es))
p = do
    e
h <- Ptr e -> IO e
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @e (Ptr (e, Chain es) -> Ptr e
forall a b. Ptr a -> Ptr b
castPtr Ptr (e, Chain es)
Ptr (Chain (e : es))
p)
    Ptr (Chain es)
tPtr <- Ptr (Ptr (Chain es)) -> IO (Ptr (Chain es))
forall a. Storable a => Ptr a -> IO a
peek (Ptr (e, Chain es)
Ptr (Chain (e : es))
p Ptr (e, Chain es) -> Int -> Ptr (Ptr (Chain es))
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8)
    Chain es
t <- Ptr (Chain es) -> IO (Chain es)
forall (es :: [*]). PeekChain es => Ptr (Chain es) -> IO (Chain es)
peekChain Ptr (Chain es)
tPtr
    (e, Chain es) -> IO (e, Chain es)
forall (f :: * -> *) a. Applicative f => a -> f a
pure (e
h, Chain es
t)

linkChain :: Ptr a -> Ptr b -> IO ()
linkChain :: Ptr a -> Ptr b -> IO ()
linkChain Ptr a
head' Ptr b
tail' = Ptr (Ptr b) -> Ptr b -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr a
head' Ptr a -> Int -> Ptr (Ptr b)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8) Ptr b
tail'