diff --git a/hw-json.cabal b/hw-json.cabal
--- a/hw-json.cabal
+++ b/hw-json.cabal
@@ -1,7 +1,7 @@
 cabal-version:  2.2
 
 name:                   hw-json
-version:                1.3.2.5
+version:                1.3.3.0
 synopsis:               Memory efficient JSON parser
 description:            Memory efficient JSON parser. Please see README.md
 category:               Data
@@ -12,7 +12,7 @@
 copyright:              2016-2021 John Ky
 license:                BSD-3-Clause
 license-file:           LICENSE
-tested-with:            GHC == 9.2.2, GHC == 9.0.2, GHC == 8.10.7, GHC == 8.8.4, GHC == 8.6.5
+tested-with:            GHC == 9.8.2, GHC == 9.6.6
 build-type:             Simple
 extra-source-files:     README.md
                         corpus/5000B.json
@@ -40,7 +40,6 @@
 common base                       { build-depends: base                       >= 4.11       && < 5      }
 
 common aeson                      { build-depends: aeson                      >= 2.0        && < 2.3    }
-common ansi-wl-pprint             { build-depends: ansi-wl-pprint             >= 0.6.8.2    && < 2      }
 common array                      { build-depends: array                      >= 0.5        && < 0.6    }
 common attoparsec                 { build-depends: attoparsec                 >= 0.13       && < 0.15   }
 common attoparsec-aeson           { build-depends: attoparsec-aeson           >= 2          && < 3      }
@@ -69,6 +68,7 @@
 common lens                       { build-depends: lens                       >= 4          && < 6      }
 common mmap                       { build-depends: mmap                       >= 0.5        && < 0.6    }
 common optparse-applicative       { build-depends: optparse-applicative       >= 0.14       && < 0.19   }
+common prettyprinter              { build-depends: prettyprinter              >= 1          && < 2      }
 common scientific                 { build-depends: scientific                 >= 0.3.6.2    && < 0.4    }
 common text                       { build-depends: text                       >= 1.2        && < 3      }
 common transformers               { build-depends: transformers               >= 0.4        && < 0.7    }
@@ -91,7 +91,6 @@
 library
   import:               base, config
                       , aeson
-                      , ansi-wl-pprint
                       , attoparsec
                       , attoparsec-aeson
                       , bits-extra
@@ -108,6 +107,7 @@
                       , hw-rankselect-base
                       , hw-simd
                       , mmap
+                      , prettyprinter
                       , scientific
                       , text
                       , vector
@@ -120,7 +120,6 @@
                         HaskellWorks.Data.Json.Internal.CharLike
                         HaskellWorks.Data.Json.Internal.Doc
                         HaskellWorks.Data.Json.Internal.Index
-                        HaskellWorks.Data.Json.Internal.Orphans
                         HaskellWorks.Data.Json.Internal.PartialIndex
                         HaskellWorks.Data.Json.Internal.Slurp
                         HaskellWorks.Data.Json.Internal.Standard.Cursor.Token
diff --git a/src/HaskellWorks/Data/Json/Internal/Doc.hs b/src/HaskellWorks/Data/Json/Internal/Doc.hs
--- a/src/HaskellWorks/Data/Json/Internal/Doc.hs
+++ b/src/HaskellWorks/Data/Json/Internal/Doc.hs
@@ -1,11 +1,27 @@
 module HaskellWorks.Data.Json.Internal.Doc
-  ( hEncloseSep
+  ( hEncloseSep,
+    text,
+    red,
+    dullgreen,
+    cyan,
   ) where
 
-import Text.PrettyPrint.ANSI.Leijen
+import Prettyprinter
 
-hEncloseSep :: Doc -> Doc -> Doc -> [Doc] -> Doc
+hEncloseSep :: Doc a -> Doc a -> Doc a -> [Doc a] -> Doc a
 hEncloseSep l r s ds = case ds of
   []  -> l <> r
   [d] -> l <> d <> r
   _   -> hcat (zipWith (<>) (l : repeat s) ds) <> r
+
+text :: String -> Doc a
+text = pretty
+
+red :: Doc a -> Doc a
+red = id
+
+dullgreen :: Doc a -> Doc a
+dullgreen = id
+
+cyan :: Doc a -> Doc a
+cyan = id
diff --git a/src/HaskellWorks/Data/Json/Internal/Orphans.hs b/src/HaskellWorks/Data/Json/Internal/Orphans.hs
deleted file mode 100644
--- a/src/HaskellWorks/Data/Json/Internal/Orphans.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-
-module HaskellWorks.Data.Json.Internal.Orphans where
-
-import Data.Text
-import Text.PrettyPrint.ANSI.Leijen hiding ((<$>))
-
-import qualified Data.Text as T
-
-instance Pretty Text where
-  pretty s = pretty (T.unpack s)
diff --git a/src/HaskellWorks/Data/Json/LightJson.hs b/src/HaskellWorks/Data/Json/LightJson.hs
--- a/src/HaskellWorks/Data/Json/LightJson.hs
+++ b/src/HaskellWorks/Data/Json/LightJson.hs
@@ -31,7 +31,7 @@
 import HaskellWorks.Data.TreeCursor
 import HaskellWorks.Data.Uncons
 import Prelude                                        hiding (drop)
-import Text.PrettyPrint.ANSI.Leijen
+import Prettyprinter
 
 import qualified Data.ByteString                      as BS
 import qualified Data.ByteString.Unsafe               as BSU
diff --git a/src/HaskellWorks/Data/Json/PartialValue.hs b/src/HaskellWorks/Data/Json/PartialValue.hs
--- a/src/HaskellWorks/Data/Json/PartialValue.hs
+++ b/src/HaskellWorks/Data/Json/PartialValue.hs
@@ -25,7 +25,6 @@
 import Data.Text                                      (Text)
 import HaskellWorks.Data.Bits.BitWise
 import HaskellWorks.Data.Json.Internal.Doc
-import HaskellWorks.Data.Json.Internal.Orphans        ()
 import HaskellWorks.Data.Json.Internal.PartialIndex
 import HaskellWorks.Data.Json.Internal.Value
 import HaskellWorks.Data.Json.Standard.Cursor.Generic
@@ -39,7 +38,7 @@
 import HaskellWorks.Data.RankSelect.Base.Rank1
 import HaskellWorks.Data.RankSelect.Base.Select1
 import Prelude                                        hiding (drop)
-import Text.PrettyPrint.ANSI.Leijen                   hiding ((<$>))
+import Prettyprinter
 
 import qualified Data.Attoparsec.ByteString.Char8 as ABC
 import qualified Data.ByteString                  as BS
@@ -150,10 +149,9 @@
   pretty mjpv = case mjpv of
     Mini (JsonPartialString s   ) -> dullgreen  (text (show s))
     Mini (JsonPartialNumber n   ) -> cyan       (text (show n))
-    Mini (JsonPartialObject []  ) -> text "{}"
     Mini (JsonPartialObject kvs ) -> case kvs of
-      (_:_:_:_:_:_:_:_:_:_:_:_:_) -> text "{" <> prettyKvs kvs <> text ", ..}"
       []                          -> text "{}"
+      (_:_:_:_:_:_:_:_:_:_:_:_:_) -> text "{" <> prettyKvs kvs <> text ", ..}"
       _                           -> text "{" <> prettyKvs kvs <> text "}"
     Mini (JsonPartialArray []   ) -> text "[]"
     Mini (JsonPartialArray vs   ) | vs `atLeastSize` 11 -> text "[" <> nest 2 (prettyVs (Micro `map` take 10 vs)) <> text ", ..]"
