diff --git a/library/PrimitiveExtras/PrimArray.hs b/library/PrimitiveExtras/PrimArray.hs
--- a/library/PrimitiveExtras/PrimArray.hs
+++ b/library/PrimitiveExtras/PrimArray.hs
@@ -87,15 +87,15 @@
 toUnboxedVector primArray =
   unsafeCoerce (toPrimitiveVector primArray)
 
-cerealGet :: Prim element => Cereal.Get element -> Cereal.Get (PrimArray element)
-cerealGet element =
+cerealGet :: Prim element => Cereal.Get Int -> Cereal.Get element -> Cereal.Get (PrimArray element)
+cerealGet int element =
   do
-    size <- fromIntegral <$> Cereal.getInt64le
+    size <- int
     replicateM size element
 
-cerealPut :: Prim element => Cereal.Putter element -> Cereal.Putter (PrimArray element)
-cerealPut element primArrayValue =
+cerealPut :: Prim element => Cereal.Putter Int -> Cereal.Putter element -> Cereal.Putter (PrimArray element)
+cerealPut int element primArrayValue =
   size <> elements
   where
-    size = Cereal.putInt64le (fromIntegral (sizeofPrimArray primArrayValue))
+    size = int (sizeofPrimArray primArrayValue)
     elements = traverse_ element primArrayValue
diff --git a/library/PrimitiveExtras/PrimMultiArray.hs b/library/PrimitiveExtras/PrimMultiArray.hs
--- a/library/PrimitiveExtras/PrimMultiArray.hs
+++ b/library/PrimitiveExtras/PrimMultiArray.hs
@@ -83,15 +83,15 @@
 toUnfoldAtM :: (Monad m, Prim prim) => PrimMultiArray prim -> Int -> UnfoldM m prim
 toUnfoldAtM (PrimMultiArray ua) index = UnliftedArray.at ua index empty PrimArray.toElementsUnfoldM
 
-cerealGet :: Prim element => Cereal.Get element -> Cereal.Get (PrimMultiArray element)
-cerealGet element =
+cerealGet :: Prim element => Cereal.Get Int -> Cereal.Get element -> Cereal.Get (PrimMultiArray element)
+cerealGet int element =
   do
-    size <- fromIntegral <$> Cereal.getInt64le
-    replicateM size (PrimArray.cerealGet element)
+    size <- int
+    replicateM size (PrimArray.cerealGet int element)
 
-cerealPut :: Prim element => Cereal.Putter element -> Cereal.Putter (PrimMultiArray element)
-cerealPut element (PrimMultiArray outerArrayValue) =
+cerealPut :: Prim element => Cereal.Putter Int -> Cereal.Putter element -> Cereal.Putter (PrimMultiArray element)
+cerealPut int element (PrimMultiArray outerArrayValue) =
   size <> innerArrays
   where
-    size = Cereal.putInt64le (fromIntegral (sizeofUnliftedArray outerArrayValue))
-    innerArrays = UnliftedArray.traverse_ (PrimArray.cerealPut element) outerArrayValue
+    size = int (sizeofUnliftedArray outerArrayValue)
+    innerArrays = UnliftedArray.traverse_ (PrimArray.cerealPut int element) outerArrayValue
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.5.1
+  0.6
 category:
   Primitive
 synopsis:
