diff --git a/app/Parse.hs b/app/Parse.hs
--- a/app/Parse.hs
+++ b/app/Parse.hs
@@ -1,4 +1,5 @@
-{-# LANGUAGE FlexibleContexts, FlexibleInstances, RankNTypes, RecordWildCards, ScopedTypeVariables, TypeFamilies #-}
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, RankNTypes, RecordWildCards, ScopedTypeVariables #-}
+{-# LANGUAGE TypeFamilies, TypeOperators #-}
 
 module Main where
 
@@ -14,8 +15,8 @@
 import qualified Transformation.Rank2 as Rank2
 import qualified Transformation.Deep as Deep
 
-import Data.Text.Prettyprint.Doc (Pretty(pretty))
-import Data.Text.Prettyprint.Doc.Util (putDocW)
+import Prettyprinter (Pretty(pretty))
+import Prettyprinter.Util (putDocW)
 
 import Control.Arrow (second)
 import Control.Monad
diff --git a/language-oberon.cabal b/language-oberon.cabal
--- a/language-oberon.cabal
+++ b/language-oberon.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                language-oberon
-version:             0.3.3.1
+version:             0.3.3.2
 synopsis:            Parser, pretty-printer, and more for the Oberon programming language
 description:
    The library and the executable support both the original Oberon and the Oberon-2 programming language, as described
@@ -35,9 +35,9 @@
                         parsers >= 0.12.7 && < 0.13, input-parsers >= 0.2.2 && < 0.4,
                         prettyprinter >= 1.2.1 && < 1.8, either == 5.*,
                         rank2classes >= 1.3 && < 1.6, grammatical-parsers >= 0.7 && < 0.8,
-                        deep-transformations == 0.2.*,
+                        deep-transformations >= 0.2 && < 0.4,
                         transformers >= 0.5 && < 0.7,
-                        template-haskell >= 2.11 && < 2.22
+                        template-haskell >= 2.11 && < 2.24
   default-language:     Haskell2010
 
 executable parse
diff --git a/src/Language/Oberon/Reserializer.hs b/src/Language/Oberon/Reserializer.hs
--- a/src/Language/Oberon/Reserializer.hs
+++ b/src/Language/Oberon/Reserializer.hs
@@ -85,6 +85,7 @@
                where nodeEnd' = nodeStart + sourceLength root
 
 instance (Rank2.Foldable (g (Const (Sum Int))),
+          Rank2.Traversable (g Parsed),
           Deep.Foldable (Transformation.Rank2.Fold Parsed (Sum Int)) g,
           Deep.Traversable PositionAdjustment g) => Full.Traversable PositionAdjustment g where
    traverse PositionAdjustment root@((nodeStart, lexemes, nodeEnd), node) = state f
diff --git a/test/Test.hs b/test/Test.hs
--- a/test/Test.hs
+++ b/test/Test.hs
@@ -7,8 +7,8 @@
 import Data.List.NonEmpty (NonEmpty((:|)), toList)
 import Data.Text (Text, unpack)
 import Data.Text.IO (readFile)
-import Data.Text.Prettyprint.Doc (Pretty(pretty), layoutPretty, defaultLayoutOptions)
-import Data.Text.Prettyprint.Doc.Render.Text (renderStrict)
+import Prettyprinter (Pretty(pretty), layoutPretty, defaultLayoutOptions)
+import Prettyprinter.Render.Text (renderStrict)
 import System.Directory (doesDirectoryExist, listDirectory)
 import System.FilePath.Posix (combine)
 import Test.Tasty (TestTree, defaultMain, testGroup)
