diff --git a/hetero-parameter-list.cabal b/hetero-parameter-list.cabal
--- a/hetero-parameter-list.cabal
+++ b/hetero-parameter-list.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           hetero-parameter-list
-version:        0.1.0.19
+version:        0.1.0.20
 synopsis:       hetero list with parameter list
 description:    Please see the README on GitHub at <https://github.com/YoshikuniJujo/hetero-parameter-list#readme>
 category:       Data
diff --git a/src/Data/HeteroParList.hs b/src/Data/HeteroParList.hs
--- a/src/Data/HeteroParList.hs
+++ b/src/Data/HeteroParList.hs
@@ -56,6 +56,7 @@
 
 	ToListWithCM(..), ToListWithCM'(..),
 	ToListWithCCpsM(..), ToListWithCCpsM'(..), withListWithCCpsM',
+	ToListWithCCpsM''(..), withListWithCCpsM'',
 
 	-- ** Homo List
 
@@ -561,3 +562,22 @@
 	(forall (s :: k) . c (t' s) => t s -> (a -> m b) -> m b) ->
 	([a] -> m b) -> m b
 withListWithCCpsM' xs f = toListWithCCpsM' @_ @_ @c @t' f xs
+
+class ToListWithCCpsM'' c (ns :: [k]) where
+	toListWithCCpsM'' ::
+		(forall (s :: k) . c s => t s -> (a -> m b) -> m b) ->
+		PL t ns -> ([a] -> m b) -> m b
+
+instance ToListWithCCpsM'' c '[] where toListWithCCpsM'' _ Nil = ($ [])
+
+instance (c n, ToListWithCCpsM'' c ns) =>
+	ToListWithCCpsM'' c (n ': ns) where
+	toListWithCCpsM'' f (x :** xs) g =
+		f x \y -> toListWithCCpsM'' @_ @c f xs \ys -> g $ y : ys
+
+withListWithCCpsM'' :: forall {k} c ns t m a b .
+	ToListWithCCpsM'' c ns =>
+	PL t ns ->
+	(forall (s :: k) . c s => t s -> (a -> m b) -> m b) ->
+	([a] -> m b) -> m b
+withListWithCCpsM'' xs f = toListWithCCpsM'' @_ @c f xs
