{-# LINE 1 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.Sparse
       (VkSparseBufferMemoryBindInfo, VkSparseImageFormatProperties,
        VkSparseImageFormatProperties2, VkSparseImageFormatProperties2KHR,
        VkSparseImageMemoryBind, VkSparseImageMemoryBindInfo,
        VkSparseImageMemoryRequirements, VkSparseImageMemoryRequirements2,
        VkSparseImageMemoryRequirements2KHR,
        VkSparseImageOpaqueMemoryBindInfo, VkSparseMemoryBind)
       where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.BaseTypes          (VkDeviceSize)
import Graphics.Vulkan.Types.Enum.Image         (VkImageAspectFlags)
import Graphics.Vulkan.Types.Enum.Sparse        (VkSparseImageFormatFlags,
                                                 VkSparseMemoryBindFlags)
import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
import Graphics.Vulkan.Types.Handles            (VkBuffer, VkDeviceMemory,
                                                 VkImage)
import Graphics.Vulkan.Types.Struct.Extent      (VkExtent3D)
import {-# SOURCE #-} Graphics.Vulkan.Types.Struct.Image       (VkImageSubresource)
import Graphics.Vulkan.Types.Struct.Offset      (VkOffset3D)

-- | > typedef struct VkSparseBufferMemoryBindInfo {
--   >     VkBuffer buffer;
--   >     uint32_t               bindCount;
--   >     const VkSparseMemoryBind* pBinds;
--   > } VkSparseBufferMemoryBindInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkSparseBufferMemoryBindInfo VkSparseBufferMemoryBindInfo registry at www.khronos.org>
type VkSparseBufferMemoryBindInfo =
     VkStruct VkSparseBufferMemoryBindInfo' -- ' closing tick for hsc2hs

data VkSparseBufferMemoryBindInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkSparseBufferMemoryBindInfo where
    type StructRep VkSparseBufferMemoryBindInfo =
         'StructMeta "VkSparseBufferMemoryBindInfo" -- ' closing tick for hsc2hs
           VkSparseBufferMemoryBindInfo
           (24)
{-# LINE 46 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
           8
{-# LINE 47 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
           '[('FieldMeta "buffer" VkBuffer 'False  -- ' closing tick for hsc2hs
                                                  (0)
{-# LINE 49 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "bindCount" Word32 'False
                                                   (8)
{-# LINE 54 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pBinds" (Ptr VkSparseMemoryBind) 'False
                                                                  (16)
{-# LINE 59 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkSparseImageFormatProperties {
--   >     VkImageAspectFlags     aspectMask;
--   >     VkExtent3D             imageGranularity;
--   >     VkSparseImageFormatFlags flags;
--   > } VkSparseImageFormatProperties;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkSparseImageFormatProperties VkSparseImageFormatProperties registry at www.khronos.org>
type VkSparseImageFormatProperties =
     VkStruct VkSparseImageFormatProperties' -- ' closing tick for hsc2hs

data VkSparseImageFormatProperties' -- ' closing tick for hsc2hs

instance VulkanMarshal VkSparseImageFormatProperties where
    type StructRep VkSparseImageFormatProperties =
         'StructMeta "VkSparseImageFormatProperties" -- ' closing tick for hsc2hs
           VkSparseImageFormatProperties
           (20)
{-# LINE 83 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
           4
{-# LINE 84 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
           '[('FieldMeta "aspectMask" VkImageAspectFlags 'True  -- ' closing tick for hsc2hs
                                                               (0)
{-# LINE 86 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageGranularity" VkExtent3D 'False
                                                              (4)
{-# LINE 91 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkSparseImageFormatFlags 'True
                                                                (16)
{-# LINE 96 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'True -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkSparseImageFormatProperties2 {
--   >     VkStructureType sType;
--   >     void*                            pNext;
--   >     VkSparseImageFormatProperties    properties;
--   > } VkSparseImageFormatProperties2;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkSparseImageFormatProperties2 VkSparseImageFormatProperties2 registry at www.khronos.org>
type VkSparseImageFormatProperties2 =
     VkStruct VkSparseImageFormatProperties2' -- ' closing tick for hsc2hs

data VkSparseImageFormatProperties2' -- ' closing tick for hsc2hs

instance VulkanMarshal VkSparseImageFormatProperties2 where
    type StructRep VkSparseImageFormatProperties2 =
         'StructMeta "VkSparseImageFormatProperties2" -- ' closing tick for hsc2hs
           VkSparseImageFormatProperties2
           (40)
{-# LINE 120 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
           8
{-# LINE 121 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 123 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 128 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "properties" VkSparseImageFormatProperties 'False
                (16)
{-# LINE 133 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'True -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | Alias for `VkSparseImageFormatProperties2`
type VkSparseImageFormatProperties2KHR =
     VkSparseImageFormatProperties2

-- | > typedef struct VkSparseImageMemoryBind {
--   >     VkImageSubresource     subresource;
--   >     VkOffset3D             offset;
--   >     VkExtent3D             extent;
--   >     VkDeviceMemory         memory;
--   >     VkDeviceSize           memoryOffset;
--   >     VkSparseMemoryBindFlagsflags;
--   > } VkSparseImageMemoryBind;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkSparseImageMemoryBind VkSparseImageMemoryBind registry at www.khronos.org>
type VkSparseImageMemoryBind = VkStruct VkSparseImageMemoryBind' -- ' closing tick for hsc2hs

data VkSparseImageMemoryBind' -- ' closing tick for hsc2hs

instance VulkanMarshal VkSparseImageMemoryBind where
    type StructRep VkSparseImageMemoryBind =
         'StructMeta "VkSparseImageMemoryBind" VkSparseImageMemoryBind -- ' closing tick for hsc2hs
           (64)
{-# LINE 162 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
           8
{-# LINE 163 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
           '[('FieldMeta "subresource" VkImageSubresource 'False  -- ' closing tick for hsc2hs
                                                                 (0)
{-# LINE 165 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "offset" VkOffset3D 'False
                                                    (12)
{-# LINE 170 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "extent" VkExtent3D 'False
                                                    (24)
{-# LINE 175 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "memory" VkDeviceMemory 'True
                                                       (40)
{-# LINE 180 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "memoryOffset" VkDeviceSize 'False
                                                            (48)
{-# LINE 185 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkSparseMemoryBindFlags 'True
                                                               (56)
{-# LINE 190 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkSparseImageMemoryBindInfo {
--   >     VkImage image;
--   >     uint32_t               bindCount;
--   >     const VkSparseImageMemoryBind* pBinds;
--   > } VkSparseImageMemoryBindInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkSparseImageMemoryBindInfo VkSparseImageMemoryBindInfo registry at www.khronos.org>
type VkSparseImageMemoryBindInfo =
     VkStruct VkSparseImageMemoryBindInfo' -- ' closing tick for hsc2hs

data VkSparseImageMemoryBindInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkSparseImageMemoryBindInfo where
    type StructRep VkSparseImageMemoryBindInfo =
         'StructMeta "VkSparseImageMemoryBindInfo" -- ' closing tick for hsc2hs
           VkSparseImageMemoryBindInfo
           (24)
{-# LINE 214 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
           8
{-# LINE 215 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
           '[('FieldMeta "image" VkImage 'False  -- ' closing tick for hsc2hs
                                                (0)
{-# LINE 217 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "bindCount" Word32 'False
                                                   (8)
{-# LINE 222 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pBinds" (Ptr VkSparseImageMemoryBind) 'False
                                                                       (16)
{-# LINE 227 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkSparseImageMemoryRequirements {
--   >     VkSparseImageFormatProperties formatProperties;
--   >     uint32_t               imageMipTailFirstLod;
--   >     VkDeviceSize           imageMipTailSize;
--   >     VkDeviceSize           imageMipTailOffset;
--   >     VkDeviceSize           imageMipTailStride;
--   > } VkSparseImageMemoryRequirements;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkSparseImageMemoryRequirements VkSparseImageMemoryRequirements registry at www.khronos.org>
type VkSparseImageMemoryRequirements =
     VkStruct VkSparseImageMemoryRequirements' -- ' closing tick for hsc2hs

data VkSparseImageMemoryRequirements' -- ' closing tick for hsc2hs

instance VulkanMarshal VkSparseImageMemoryRequirements where
    type StructRep VkSparseImageMemoryRequirements =
         'StructMeta "VkSparseImageMemoryRequirements" -- ' closing tick for hsc2hs
           VkSparseImageMemoryRequirements
           (48)
{-# LINE 253 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
           8
{-# LINE 254 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
           '[('FieldMeta "formatProperties" VkSparseImageFormatProperties
                'False -- ' closing tick for hsc2hs
                (0)
{-# LINE 257 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageMipTailFirstLod" Word32 'False
                                                              (20)
{-# LINE 262 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageMipTailSize" VkDeviceSize 'False
                                                                (24)
{-# LINE 267 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageMipTailOffset" VkDeviceSize 'False
                                                                  (32)
{-# LINE 272 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageMipTailStride" VkDeviceSize 'False
                                                                  (40)
{-# LINE 277 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'True -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkSparseImageMemoryRequirements2 {
--   >     VkStructureType sType;
--   >     void*                                       pNext;
--   >     VkSparseImageMemoryRequirements                                      memoryRequirements;
--   > } VkSparseImageMemoryRequirements2;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2 registry at www.khronos.org>
type VkSparseImageMemoryRequirements2 =
     VkStruct VkSparseImageMemoryRequirements2' -- ' closing tick for hsc2hs

data VkSparseImageMemoryRequirements2' -- ' closing tick for hsc2hs

instance VulkanMarshal VkSparseImageMemoryRequirements2 where
    type StructRep VkSparseImageMemoryRequirements2 =
         'StructMeta "VkSparseImageMemoryRequirements2" -- ' closing tick for hsc2hs
           VkSparseImageMemoryRequirements2
           (64)
{-# LINE 301 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
           8
{-# LINE 302 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 304 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 309 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "memoryRequirements" VkSparseImageMemoryRequirements -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (16)
{-# LINE 315 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'True -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | Alias for `VkSparseImageMemoryRequirements2`
type VkSparseImageMemoryRequirements2KHR =
     VkSparseImageMemoryRequirements2

-- | > typedef struct VkSparseImageOpaqueMemoryBindInfo {
--   >     VkImage image;
--   >     uint32_t               bindCount;
--   >     const VkSparseMemoryBind* pBinds;
--   > } VkSparseImageOpaqueMemoryBindInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkSparseImageOpaqueMemoryBindInfo VkSparseImageOpaqueMemoryBindInfo registry at www.khronos.org>
type VkSparseImageOpaqueMemoryBindInfo =
     VkStruct VkSparseImageOpaqueMemoryBindInfo' -- ' closing tick for hsc2hs

data VkSparseImageOpaqueMemoryBindInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkSparseImageOpaqueMemoryBindInfo where
    type StructRep VkSparseImageOpaqueMemoryBindInfo =
         'StructMeta "VkSparseImageOpaqueMemoryBindInfo" -- ' closing tick for hsc2hs
           VkSparseImageOpaqueMemoryBindInfo
           (24)
{-# LINE 343 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
           8
{-# LINE 344 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
           '[('FieldMeta "image" VkImage 'False  -- ' closing tick for hsc2hs
                                                (0)
{-# LINE 346 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "bindCount" Word32 'False
                                                   (8)
{-# LINE 351 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pBinds" (Ptr VkSparseMemoryBind) 'False
                                                                  (16)
{-# LINE 356 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkSparseMemoryBind {
--   >     VkDeviceSize           resourceOffset;
--   >     VkDeviceSize           size;
--   >     VkDeviceMemory         memory;
--   >     VkDeviceSize           memoryOffset;
--   >     VkSparseMemoryBindFlagsflags;
--   > } VkSparseMemoryBind;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkSparseMemoryBind VkSparseMemoryBind registry at www.khronos.org>
type VkSparseMemoryBind = VkStruct VkSparseMemoryBind' -- ' closing tick for hsc2hs

data VkSparseMemoryBind' -- ' closing tick for hsc2hs

instance VulkanMarshal VkSparseMemoryBind where
    type StructRep VkSparseMemoryBind =
         'StructMeta "VkSparseMemoryBind" VkSparseMemoryBind  -- ' closing tick for hsc2hs
                                                             (40)
{-# LINE 380 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
           8
{-# LINE 381 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
           '[('FieldMeta "resourceOffset" VkDeviceSize 'False  -- ' closing tick for hsc2hs
                                                              (0)
{-# LINE 383 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "size" VkDeviceSize 'False
                                                    (8)
{-# LINE 388 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "memory" VkDeviceMemory 'True
                                                       (16)
{-# LINE 393 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "memoryOffset" VkDeviceSize 'False
                                                            (24)
{-# LINE 398 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkSparseMemoryBindFlags 'True
                                                               (32)
{-# LINE 403 "src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs