diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,10 @@
 # Revision history for fs-sim
 
-## ?.?.?.? -- ????-??-??
+## 0.4.1.0 -- 2025-09-29
+
+### Non-breaking
+
+* Reimplement `partialiseWord64` to allow for 32 bits architectures such as WASM.
 
 ## 0.4.0.0 -- 2025-05-30
 
diff --git a/fs-sim.cabal b/fs-sim.cabal
--- a/fs-sim.cabal
+++ b/fs-sim.cabal
@@ -1,6 +1,6 @@
 cabal-version:   3.0
 name:            fs-sim
-version:         0.4.0.0
+version:         0.4.1.0
 synopsis:        Simulated file systems
 description:     Simulated file systems.
 license:         Apache-2.0
@@ -30,7 +30,7 @@
   type:     git
   location: https://github.com/input-output-hk/fs-sim
   subdir:   fs-sim
-  tag:      fs-sim-0.4.0.0
+  tag:      fs-sim-0.4.1.0
 
 library
   hs-source-dirs:   src
@@ -47,13 +47,13 @@
     , base                   >=4.16  && <4.22
     , base16-bytestring      ^>=0.1  || ^>=1.0
     , bytestring             ^>=0.10 || ^>=0.11 || ^>=0.12
-    , containers             ^>=0.5  || ^>=0.6  || ^>=0.7
+    , containers             ^>=0.5  || ^>=0.6  || ^>=0.7     || ^>=0.8
     , fs-api                 ^>=0.4
     , io-classes             ^>=1.6  || ^>=1.7  || ^>=1.8.0.1
     , io-classes:strict-stm
     , mtl                    ^>=2.2  || ^>=2.3
     , primitive              ^>=0.9
-    , QuickCheck             ^>=2.13 || ^>=2.14 || ^>=2.15
+    , QuickCheck             ^>=2.13 || ^>=2.14 || ^>=2.15    || ^>=2.16
     , safe-wild-cards        ^>=1.0
     , text                   ^>=1.2  || ^>=2.0  || ^>=2.1
 
diff --git a/src/System/FS/Sim/Error.hs b/src/System/FS/Sim/Error.hs
--- a/src/System/FS/Sim/Error.hs
+++ b/src/System/FS/Sim/Error.hs
@@ -47,7 +47,6 @@
 import qualified Data.ByteString.Char8 as C8
 import qualified Data.ByteString.Lazy as BL
 import qualified Data.ByteString.Lazy.Char8 as LC8
-import           Data.Coerce (coerce)
 import           Data.Foldable (for_)
 import           Data.List (intercalate)
 import qualified Data.List as List
@@ -55,7 +54,6 @@
 import           Data.Primitive.ByteArray
 import           Data.String (IsString (..))
 import           Data.Word (Word64)
-import           Foreign.C.Types
 import           Prelude hiding (null)
 import           SafeWildCards
 import           System.Posix.Types
@@ -130,7 +128,10 @@
 
 -- | Like 'partialiseByteCount', but for 'Word64'.
 partialiseWord64 :: Partial -> Word64 -> Word64
-partialiseWord64 = coerce partialiseByteCount
+partialiseWord64 (Partial p) c
+  | 0 <- c   = c
+  | p >= c   = 1
+  | otherwise = c - p
 
 -- | Given a bytestring that is requested to be written to disk, use
 -- 'partialiseByteCount' to compute a partial bytestring.
