vulkan-3.26.2: src/Vulkan/CStruct/Extends.hs-boot
{-# language CPP #-}
-- No documentation found for Chapter "Extends"
module Vulkan.CStruct.Extends ( BaseInStructure
, BaseOutStructure
, Extendss
, PeekChain
, PokeChain
, Chain
) where
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (ToCStruct)
import Data.Kind (Constraint)
import Data.Kind (Type)
data BaseInStructure
instance ToCStruct BaseInStructure
instance Show BaseInStructure
instance FromCStruct BaseInStructure
data BaseOutStructure
instance ToCStruct BaseOutStructure
instance Show BaseOutStructure
instance FromCStruct BaseOutStructure
class PeekChain (xs :: [Type])
class PokeChain (xs :: [Type])
type family Extends (p :: [Type] -> Type) (x :: Type) :: Constraint where ..
type family Extendss (p :: [Type] -> Type) (xs :: [Type]) :: Constraint where
Extendss p '[] = ()
Extendss p (x : xs) = (Extends p x, Extendss p xs)
type family Chain (xs :: [a]) = (r :: a) | r -> xs where
Chain '[] = ()
Chain (x:xs) = (x, Chain xs)