diff --git a/gpu-vulkan-middle.cabal b/gpu-vulkan-middle.cabal
--- a/gpu-vulkan-middle.cabal
+++ b/gpu-vulkan-middle.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           gpu-vulkan-middle
-version:        0.1.0.71
+version:        0.1.0.72
 synopsis:       Medium wrapper for Vulkan API
 description:    Please see the README on GitHub at <https://github.com/YoshikuniJujo/gpu-vulkan-middle#readme>
 category:       GPU
diff --git a/src/Gpu/Vulkan/Pipeline/ShaderStage/Middle/Internal.hs b/src/Gpu/Vulkan/Pipeline/ShaderStage/Middle/Internal.hs
--- a/src/Gpu/Vulkan/Pipeline/ShaderStage/Middle/Internal.hs
+++ b/src/Gpu/Vulkan/Pipeline/ShaderStage/Middle/Internal.hs
@@ -19,6 +19,7 @@
 import Foreign.Storable.HeteroList
 import Data.TypeLevel.Maybe qualified as TMaybe
 import Data.TypeLevel.Tuple.Uncurry
+import qualified Data.HeteroParList as HPList
 import qualified Data.HeteroParList as HeteroParList
 import Data.HeteroParList (pattern (:**))
 
@@ -37,7 +38,7 @@
 	createInfoStage :: ShaderStageFlagBits,
 	createInfoModule :: ShaderModule.S sknd,
 	createInfoName :: BS.ByteString,
-	createInfoSpecializationInfo :: Maybe (HeteroParList.L sivs) }
+	createInfoSpecializationInfo :: HeteroParList.L sivs }
 
 deriving instance (Show (TMaybe.M mn), Show (HeteroParList.L sivs)) =>
 	Show (CreateInfo mn sknd sivs)
@@ -63,8 +64,8 @@
 			C.createInfoPName = cnm,
 			C.createInfoPSpecializationInfo = pcsi } in
 	case mxs of
-		Nothing -> f $ ci NullPtr
-		Just xs -> Specialization.infoToCore xs \csi ->
+		HPList.Nil -> f $ ci NullPtr
+		xs -> Specialization.infoToCore xs \csi ->
 			withPoked csi $ f . ci
 
 class CreateInfoListToCore cias where
