diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+#### 0.1.0.6
+
+* Support up to GHC 8.8
+* Drop test dependency on `hxt-pickle-utils`
+
 #### 0.1.0.4
 
 * Fix build on GHC 8.
diff --git a/generic-xmlpickler.cabal b/generic-xmlpickler.cabal
--- a/generic-xmlpickler.cabal
+++ b/generic-xmlpickler.cabal
@@ -1,7 +1,7 @@
 name:                generic-xmlpickler
-version:             0.1.0.5
+version:             0.1.0.6
 description:         Generic generation of HXT XmlPickler instances using GHC Generics.
-synopsis:            Generic generation of HXT XmlPickler instances using GHC Generics.
+synopsis:            Generic generation of HXT XmlPickler instances using GHC Generics
 category:            XML, Data
 cabal-version:       >= 1.8
 author:              Silk
@@ -11,6 +11,16 @@
 license:             BSD3
 license-file:        LICENSE
 build-type:          Simple
+tested-with:
+    GHC == 7.4.2
+  , GHC == 7.6.3
+  , GHC == 7.8.4
+  , GHC == 7.10.3
+  , GHC == 8.0.2
+  , GHC == 8.2.1
+  , GHC == 8.4.4
+  , GHC == 8.6.5
+  , GHC == 8.8.1
 
 extra-source-files:
   CHANGELOG.md
@@ -26,8 +36,8 @@
   hs-source-dirs:    src
   exposed-modules:   Generics.XmlPickler
   build-depends:
-      base >= 4.5 && < 4.10
-    , generic-deriving >= 1.6 && < 1.11
+      base >= 4.5 && < 4.14
+    , generic-deriving >= 1.6 && < 1.14
     , hxt >= 9.2 && < 9.4
     , text
   if impl(ghc < 7.6)
@@ -37,14 +47,14 @@
   ghc-options:       -Wall
   hs-source-dirs:    tests
   main-is:           Main.hs
+  other-modules:     PickleUtils
   type:              exitcode-stdio-1.0
   build-depends:
       base >= 4.5 && < 5
     , generic-xmlpickler
     , hxt >= 9.2 && < 9.4
-    , hxt-pickle-utils == 0.1.*
-    , tasty >= 0.10 && < 0.12
-    , tasty-hunit == 0.9.*
+    , tasty >= 0.10 && < 1.3
+    , tasty-hunit >= 0.9 && < 0.11
     , tasty-th == 0.1.*
   if impl(ghc < 7.6)
     build-depends:   ghc-prim >= 0.2 && < 0.5
diff --git a/tests/Main.hs b/tests/Main.hs
--- a/tests/Main.hs
+++ b/tests/Main.hs
@@ -14,8 +14,8 @@
 import Test.Tasty.HUnit
 import Test.Tasty.TH
 import Text.XML.HXT.Arrow.Pickle
-import Text.Xml.Pickle
 
+import PickleUtils
 import Generics.XmlPickler
 
 data SingleCons = SingleCons deriving (Show, Eq, Generic)
diff --git a/tests/PickleUtils.hs b/tests/PickleUtils.hs
new file mode 100644
--- /dev/null
+++ b/tests/PickleUtils.hs
@@ -0,0 +1,28 @@
+-- | Some utility functions for using hxt picklers.
+module PickleUtils
+  ( toXML
+  , maybeFromXML
+  , eitherFromXML
+  ) where
+
+import Control.Category
+import Prelude hiding ((.))
+import Text.XML.HXT.Core
+
+-- | Convert a value to an XML string.
+toXML :: XmlPickler p => p -> String
+toXML = showPickled []
+
+-- | Parse a string containing xml to a value, or `Nothing` if the
+-- parse fails.
+maybeFromXML :: XmlPickler a => String -> Maybe a
+maybeFromXML = either (const Nothing) Just . eitherFromXML
+
+-- | Parse a string containing xml to a value, or an error message on
+-- failure.
+eitherFromXML :: XmlPickler a => String -> Either String a
+eitherFromXML text =
+  case runLA (removeAllWhiteSpace . xread) text of
+    []    -> Left "Failed to parse XML in eitherFromXML."
+    [x]   -> unpickleDoc' xpickle x
+    (_:_) -> Left "Multiple parses in eitherFromXML."
