diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -2,9 +2,10 @@
 
 ## Next
 
-## 0.9.6.3.1 (2024-03-07)
+## 0.9.8.1 (2024-02-05)
 
-- Avoid enabling plugins in ghc-options (workaround for #9375)
+- Set support for GHC 9.8.1 [#2248](https://github.com/ucsd-progsys/liquidhaskell/pull/2248)
+- Embedded files `include/CoreToLogic.lg` and `syntax/liquid.css` in the source code [#2265](https://github.com/ucsd-progsys/liquidhaskell/issues/2265)
 
 ## 0.9.6.3 (2024-01-29)
 
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -44,6 +44,18 @@
 
 For those diving into the implementation of LiquidHaskell, here are a few tips:
 
+## Running the pluging on individual files
+
+```
+stack build liquidhaskell
+stack exec ghc -- -fplugin=LiquidHaskell FILE.hs
+```
+
+```
+cabal build liquidhaskell
+cabal exec ghc -- -fplugin=LiquidHaskell FILE.hs
+```
+
 ## Fast (re)compilation
 
 When working on the `liquidhaskell-boot` library, usually all we want is to make changes and quickly recompile
diff --git a/liquidhaskell.cabal b/liquidhaskell.cabal
--- a/liquidhaskell.cabal
+++ b/liquidhaskell.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.4
 name:               liquidhaskell
-version:            0.9.6.3.1
+version:            0.9.8.1
 synopsis:           Liquid Types for Haskell
 description:        Liquid Types for Haskell.
 license:            BSD-3-Clause
@@ -78,9 +78,9 @@
   hs-source-dirs:     src
 
   build-depends:      base                 >= 4.11.1.0 && < 5,
-                      liquidhaskell-boot   == 0.9.6.3,
-                      bytestring           == 0.11.5.2,
-                      containers           == 0.6.7,
+                      liquidhaskell-boot   == 0.9.8.1,
+                      bytestring           == 0.12.0.2,
+                      containers           == 0.6.8,
                       ghc-bignum,
                       ghc-prim
   default-language:   Haskell98
diff --git a/src/Data/ByteString/Char8_LHAssumptions.hs b/src/Data/ByteString/Char8_LHAssumptions.hs
--- a/src/Data/ByteString/Char8_LHAssumptions.hs
+++ b/src/Data/ByteString/Char8_LHAssumptions.hs
@@ -276,11 +276,11 @@
        , { r : Data.ByteString.ByteString | bslen r == len i }
        )
 
-assume Data.ByteString.Char8.readInt
+assume Data.ByteString.ReadInt.readInt
     :: i : Data.ByteString.ByteString
     -> Maybe { p : (Int, { o : Data.ByteString.ByteString | bslen o < bslen i}) | bslen i /= 0 }
 
-assume Data.ByteString.Char8.readInteger
+assume Data.ByteString.ReadNat.readInteger
     :: i : Data.ByteString.ByteString
     -> Maybe { p : (Integer, { o : Data.ByteString.ByteString | bslen o < bslen i}) | bslen i /= 0 }
 @-}
diff --git a/src/Data/ByteString/Lazy/Char8_LHAssumptions.hs b/src/Data/ByteString/Lazy/Char8_LHAssumptions.hs
--- a/src/Data/ByteString/Lazy/Char8_LHAssumptions.hs
+++ b/src/Data/ByteString/Lazy/Char8_LHAssumptions.hs
@@ -245,11 +245,11 @@
        , { r : Data.ByteString.Lazy.ByteString | bllen r == len i }
        )
 
-assume Data.ByteString.Lazy.Char8.readInt
+assume Data.ByteString.Lazy.ReadInt.readInt
     :: i : Data.ByteString.Lazy.ByteString
     -> Maybe { p : (Int, { o : Data.ByteString.Lazy.ByteString | bllen o < bllen i}) | bllen i /= 0 }
 
-assume Data.ByteString.Lazy.Char8.readInteger
+assume Data.ByteString.Lazy.ReadNat.readInteger
     :: i : Data.ByteString.Lazy.ByteString
     -> Maybe { p : (Integer, { o : Data.ByteString.Lazy.ByteString | bllen o < bllen i}) | bllen i /= 0 }
 
