diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Change log for [raaz].
 
+## [0.3.11] - Feb 18, 2025
+
+Release that supports ghc-9.12 (base 4.21)
+
 ## [0.3.10] - Jun 14, 2024
 
 Release that supports ghc-9.10 (base 4.20)
@@ -213,4 +217,5 @@
 [0.3.8]: <http://github.com/raaz-crypto/raaz/releases/tag/v0.3.8>
 [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>
 [raaz]:  <http://github.com/raaz-crypto/raaz/>
diff --git a/indef/buffer/Context.hs b/indef/buffer/Context.hs
--- a/indef/buffer/Context.hs
+++ b/indef/buffer/Context.hs
@@ -53,7 +53,7 @@
 
 instance KnownNat n => Memory (Cxt n) where
   memoryAlloc     = Cxt <$> memoryAlloc <*> memoryAlloc <*> memoryAlloc
-  unsafeToPointer = unsafeToPointer . cxtBuf
+  unsafeToPointer = unsafeToPointer . cxtInternals
 
 {--
 
@@ -89,7 +89,7 @@
 
 -- | Set the context to the empty state.
 unsafeSetCxtEmpty :: Cxt n -> IO ()
-unsafeSetCxtEmpty Cxt{..} = initialise (0 :: BYTES Int) cxtAvailableBytes
+unsafeSetCxtEmpty = initialise (0 :: BYTES Int) . cxtAvailableBytes
 
 -- | Set the context to the full state.
 unsafeSetCxtFull :: KnownNat n => Cxt n -> IO ()
@@ -223,6 +223,7 @@
 --
 --
 
+-- | This action fills from the given byte source to the context.
 unsafeFillFrom :: (KnownNat n, ByteSource src)
                => src
                -> Cxt n
@@ -265,7 +266,7 @@
   where doNothing      = const $ return ()
         process remSrc = unsafeConsumeBlocks action cxt >> unsafeContinue action remSrc cxt
 
-
+-- | Finalise the context with the last chunk of data.
 unsafeFinalise :: KnownNat n
                => (BufferPtr -> BYTES Int -> Internals -> IO ())
                -> Cxt n
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.10
+version: 0.3.11
 stability: experimental
 
 synopsis: Fast and type safe cryptography.
@@ -127,13 +127,16 @@
 
 data-files: tests/standard-test-vectors/blake2/tests.json
 
-extra-source-files: CHANGELOG.md
-                  , README.md
+extra-doc-files: CHANGELOG.md
+               , README.md
+
+extra-source-files:
+
                   --
                   -- C Header files are not included in cabal sdist
                   -- even if specified in include.
                   --
-                  , core/cbits/raaz/core/endian.h
+                    core/cbits/raaz/core/endian.h
 
                   , libverse/verse.h
 
@@ -192,7 +195,7 @@
   default-language: Haskell2010
   ghc-options: -Wall
   default-extensions: NoImplicitPrelude
-  build-depends: base                    >= 4.11 &&  < 4.21
+  build-depends: base                    >= 4.11 &&  < 4.22
                , bytestring              >= 0.10 &&  < 0.13
                , deepseq                 >= 1.4  &&  < 1.6
                , vector                  >= 0.12 &&  < 0.14
@@ -705,6 +708,7 @@
   if !os(windows)
     cpp-options: -DHAVE_DEV_NULL
 
+  autogen-modules: Paths_raaz
   other-modules: Raaz.Core.ByteSourceSpec
                , Raaz.Core.EncodeSpec
                , Raaz.Core.MemorySpec
