diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Change log for [raaz].
 
+## [0.3.12] - Aug 20, 2026
+
+Release that supports ghc-9.14 (base 4.22)
+
 ## [0.3.11] - Feb 18, 2025
 
 Release that supports ghc-9.12 (base 4.21)
@@ -218,4 +222,5 @@
 [0.3.9]: <http://github.com/raaz-crypto/raaz/releases/tag/v0.3.9>
 [0.3.10]: <http://github.com/raaz-crypto/raaz/releases/tag/v0.3.10>
 [0.3.11]: <http://github.com/raaz-crypto/raaz/releases/tag/v0.3.11>
+[0.3.12]: <http://github.com/raaz-crypto/raaz/releases/tag/v0.3.12>
 [raaz]:  <http://github.com/raaz-crypto/raaz/>
diff --git a/core/Raaz/Core/Types/Endian.hs b/core/Raaz/Core/Types/Endian.hs
--- a/core/Raaz/Core/Types/Endian.hs
+++ b/core/Raaz/Core/Types/Endian.hs
@@ -4,7 +4,6 @@
 {-# LANGUAGE MultiParamTypeClasses      #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
 {-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
 {-# LANGUAGE TypeFamilies               #-}
 
 -- | Endian safe types.
@@ -239,7 +238,7 @@
 newtype LE w = LE { unLE :: w }
     deriving ( Bounded, Enum, Read, Show
              , Integral, Num, Real, Eq, Equality, Ord
-             , Bits, Storable, Typeable, NFData
+             , Bits, Storable, NFData
              )
 
 instance Functor LE where
@@ -249,7 +248,7 @@
 newtype BE w = BE { unBE :: w }
     deriving ( Bounded, Enum, Read, Show
              , Integral, Num, Real, Eq, Equality, Ord
-             , Bits, Storable, Typeable, NFData
+             , Bits, Storable, NFData
              )
 
 instance Functor BE where
diff --git a/implementation/ChaCha20/CPortable.hs b/implementation/ChaCha20/CPortable.hs
--- a/implementation/ChaCha20/CPortable.hs
+++ b/implementation/ChaCha20/CPortable.hs
@@ -7,7 +7,6 @@
 import qualified Data.Vector.Unboxed as V
 
 import           Raaz.Core
-import           Raaz.Core.Types.Internal
 import           Raaz.Primitive.ChaCha20.Internal
 import           Raaz.Verse.ChaCha20.C.Portable
 
@@ -57,7 +56,14 @@
   -- from the hchacha20 hash. We also set the ivcell appropriately
   initialise iv $ ivCell mem
   where keyPtr = castPtr $ keyCellPtr mem
-        [LE h0,LE h1,LE h2, LE h3, h4, h5] = V.toList $ unsafeToVector tup
+        vec = unsafeToVector tup
+        wrd = V.unsafeIndex vec
+        h0  = unLE $ wrd 0
+        h1  = unLE $ wrd 1
+        h2  = unLE $ wrd 2
+        h3  = unLE $ wrd 3
+        h4  = wrd 4
+        h5  = wrd 5
         iv  = Nounce $ unsafeFromList [0, h4, h5] :: Nounce ChaCha20
 
 
diff --git a/implementation/entropy/windows/Entropy.hsc b/implementation/entropy/windows/Entropy.hsc
--- a/implementation/entropy/windows/Entropy.hsc
+++ b/implementation/entropy/windows/Entropy.hsc
@@ -12,7 +12,7 @@
 ## error Unknown mingw32 arch
 ##endif
 
-import Foreign.Ptr (Ptr(), nullPtr, castPtr)
+import Foreign.Ptr (nullPtr, castPtr)
 import Foreign.Storable (peek)
 import Foreign.C.String (CWString())
 import Raaz.Core.Prelude
diff --git a/raaz.cabal b/raaz.cabal
--- a/raaz.cabal
+++ b/raaz.cabal
@@ -1,7 +1,7 @@
 cabal-version: 3.0
 
 name:    raaz
-version: 0.3.11
+version: 0.3.12
 stability: experimental
 
 synopsis: Fast and type safe cryptography.
@@ -195,7 +195,7 @@
   default-language: Haskell2010
   ghc-options: -Wall
   default-extensions: NoImplicitPrelude
-  build-depends: base                    >= 4.11 &&  < 4.22
+  build-depends: base                    >= 4.11 &&  < 4.23
                , bytestring              >= 0.10 &&  < 0.13
                , deepseq                 >= 1.4  &&  < 1.6
                , vector                  >= 0.12 &&  < 0.14
