diff --git a/library/PrimitiveExtras/PrimMultiArray.hs b/library/PrimitiveExtras/PrimMultiArray.hs
--- a/library/PrimitiveExtras/PrimMultiArray.hs
+++ b/library/PrimitiveExtras/PrimMultiArray.hs
@@ -12,10 +12,11 @@
   toUnfoldAtM,
   cerealGet,
   cerealPut,
+  fold,
 )
 where
 
-import PrimitiveExtras.Prelude hiding (replicateM)
+import PrimitiveExtras.Prelude hiding (replicateM, fold)
 import PrimitiveExtras.Types
 import qualified DeferredFolds.Unfold as Unfold
 import qualified DeferredFolds.UnfoldM as UnfoldM
@@ -95,3 +96,13 @@
   where
     size = int (sizeofUnliftedArray outerArrayValue)
     innerArrays = UnliftedArray.traverse_ (PrimArray.cerealPut int element) outerArrayValue
+
+{-|
+Having a priorly computed array of inner dimension sizes,
+e.g., using the 'PrimitiveExtras.PrimArray.indexCountsFold',
+construct a fold over indexed elements into a multi-array of elements.
+
+Thus it allows to construct it in two passes over the indexed elements.
+-}
+fold :: (Integral size, Prim size, Prim element) => PrimArray size -> Fold (Int, element) (PrimMultiArray element)
+fold = Folds.primMultiArray
diff --git a/primitive-extras.cabal b/primitive-extras.cabal
--- a/primitive-extras.cabal
+++ b/primitive-extras.cabal
@@ -1,7 +1,7 @@
 name:
   primitive-extras
 version:
-  0.6.1
+  0.6.2
 category:
   Primitive
 synopsis:
