diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Revision history for ghc-tags-pipes
 
+## 0.1.1.0 -- 2023-05-01
+
+* `GHC-9.6` support.
+
 ## 0.1.0.0 -- YYYY-mm-dd
 
 * First version. Released on an unsuspecting world.
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,8 @@
+ghc-tags-pipes
+==============
+
+![Haskell Programming Language](https://img.shields.io/badge/language-Haskell-8D82AC.svg?style=for-the-badge)
+![MPL-2.0 License](http://img.shields.io/badge/license-MPL20-brightgreen.svg?style=for-the-badge)
+[![Haskell CI](https://img.shields.io/github/actions/workflow/status/coot/ghc-tags-plugin/ci.yml?branch=master&label=Build&style=for-the-badge)](https://github.com/coot/ghc-tags-plugin/actions/workflows/ci.yml)
+
+Using `pipes` to stream tags to parse them with `ghc-tags-core`.
diff --git a/ghc-tags-pipes.cabal b/ghc-tags-pipes.cabal
--- a/ghc-tags-pipes.cabal
+++ b/ghc-tags-pipes.cabal
@@ -1,6 +1,6 @@
 cabal-version:      3.0
 name:               ghc-tags-pipes
-version:            0.1.0.0
+version:            0.1.1.0
 synopsis:           Streaming interface for ghc-tags-core
 description:        Interface to stream tags using `pipes` library.
 homepage:           https://github.com/coot/ghc-tags-plugin#readme
@@ -13,6 +13,7 @@
 category:           Development
 build-type:         Simple
 extra-doc-files:    CHANGELOG.md
+                    README.md
 
 common warnings
     ghc-options: -Wall
@@ -33,14 +34,12 @@
   hs-source-dirs:      lib
   exposed-modules:     GhcTags.Stream
   build-depends:       attoparsec           >=0.13.0.0,
-                       base                 >=4.12.0.0 && <4.18,
+                       base                 >=4.12.0.0 && <4.19,
                        bytestring           >=0.10,
-                       filepath-bytestring ^>=1.4,
                        mtl,
                        pipes               ^>=4.3,
-                       pipes-attoparsec    ^>=0.5,
+                       pipes-attoparsec    ^>=0.6,
                        pipes-bytestring    ^>=2.1,
                        text                 >=1.2 && <2.1,
                        ghc-tags-core
-
   default-language:    Haskell2010
diff --git a/lib/GhcTags/Stream.hs b/lib/GhcTags/Stream.hs
--- a/lib/GhcTags/Stream.hs
+++ b/lib/GhcTags/Stream.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP                 #-}
 {-# LANGUAGE DataKinds           #-}
 {-# LANGUAGE LambdaCase          #-}
 {-# LANGUAGE FlexibleContexts    #-}
@@ -13,16 +14,19 @@
     , runCombineTagsPipe
     ) where
 
+#if __GLASGOW_HASKELL__ >= 906
 import           Control.Monad.State.Strict
+#else
+import           Control.Monad.State.Strict hiding (void)
+#endif
 import           Data.ByteString (ByteString)
 import           Data.Attoparsec.ByteString (Parser)
 import qualified Data.ByteString as BS
 import           Data.ByteString.Builder (Builder)
 import qualified Data.ByteString.Builder as BS
-import           Data.Functor (($>))
+import           Data.Functor (void, ($>))
 import qualified Data.Text.Encoding as Text
 import           System.IO
-import           System.FilePath.ByteString (RawFilePath)
 
 import           Pipes ((>->), (~>))
 import qualified Pipes as Pipes
@@ -61,6 +65,7 @@
     -> Pipes.Producer (Tag tk) m [Tag tk]
 combineTagsPipe compareFn modPath = go
   where
+    modPath' = rawFilePathToBS modPath
     go :: Tag tk -> [Tag tk]
        -> Pipes.Producer (Tag tk) m [Tag tk]
 
@@ -69,7 +74,7 @@
     -- note: we check that 'tagFilePath' ends with 'modPath', which is
     -- a relative path from the corresponding cabal file.
     go tag as
-      | modPath `BS.isSuffixOf` Text.encodeUtf8 (getRawFilePath (tagFilePath tag))
+      | modPath' `BS.isSuffixOf` Text.encodeUtf8 (getRawFilePath (tagFilePath tag))
       = pure as
 
     go tag as@(a : as')
