diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,20 @@
 # Changelog for the Clash project
 
+## 1.4.5 *Oct 13th 2021*
+
+Changed:
+
+ * `clash-lib` now supports prettyprinter 1.7
+
+Documentation:
+
+ * The documentation on hidden clocks, resets, and enables has been corrected and extended in `Clash.Signal`.
+
 ## 1.4.4 *Oct 11th 2021*
+Changed:
+
+ * `clash-lib` now supports aeson >= 2.0
+
 Fixed:
 
  * Dont' loop on recursive data types hiding behind type families [#1921](https://github.com/clash-lang/clash-compiler/issues/1921)
diff --git a/clash-lib.cabal b/clash-lib.cabal
--- a/clash-lib.cabal
+++ b/clash-lib.cabal
@@ -1,6 +1,6 @@
 Cabal-version:        2.2
 Name:                 clash-lib
-Version:              1.4.4
+Version:              1.4.5
 Synopsis:             Clash: a functional hardware description language - As a library
 Description:
   Clash is a functional hardware description language that borrows both its
@@ -144,7 +144,7 @@
                       base16-bytestring       >= 0.1.1    && < 1.1,
                       binary                  >= 0.8.5    && < 0.11,
                       bytestring              >= 0.10.0.2 && < 0.12,
-                      clash-prelude           == 1.4.4,
+                      clash-prelude           == 1.4.5,
                       concurrent-supply       >= 0.1.7    && < 0.2,
                       containers              >= 0.5.0.0  && < 0.7,
                       cryptohash-sha256       >= 0.11     && < 0.12,
@@ -167,11 +167,7 @@
                       mtl                     >= 2.1.2    && < 2.3,
                       ordered-containers      >= 0.2      && < 0.3,
                       parsers                 >= 0.12.8   && < 1.0,
-                      -- TODO upper bound needed on prettyprinter until we can
-                      -- switch to 1.7 on both nix and debian. 1.7.1 has
-                      -- DEPRECATED pragmas on the old module names which
-                      -- break CI
-                      prettyprinter           >= 1.2.0.1  && < 1.7.1,
+                      prettyprinter           >= 1.2.0.1  && < 1.8,
                       pretty-show             >= 1.9      && < 2.0,
                       primitive               >= 0.5.0.1  && < 1.0,
                       process                 >= 1.1.0.2  && < 1.7,
diff --git a/src/Clash/Backend/VHDL.hs b/src/Clash/Backend/VHDL.hs
--- a/src/Clash/Backend/VHDL.hs
+++ b/src/Clash/Backend/VHDL.hs
@@ -39,7 +39,13 @@
 import           Data.Semigroup.Monad.Extra
 import qualified Data.Text.Lazy                       as T
 import qualified Data.Text                            as TextS
+
+#if MIN_VERSION_prettyprinter(1,7,0)
+import qualified Prettyprinter                        as PP
+#else
 import qualified Data.Text.Prettyprint.Doc            as PP
+#endif
+
 import           Data.Text.Prettyprint.Doc.Extra
 import           GHC.Stack                            (HasCallStack)
 import qualified System.FilePath
diff --git a/src/Clash/Core/Evaluator/Types.hs b/src/Clash/Core/Evaluator/Types.hs
--- a/src/Clash/Core/Evaluator/Types.hs
+++ b/src/Clash/Core/Evaluator/Types.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE OverloadedStrings #-}
 
 {-|
@@ -14,7 +15,12 @@
 import qualified Data.IntMap.Strict as IntMap (insert, lookup)
 import Data.List (foldl')
 import Data.Maybe (fromMaybe, isJust)
+
+#if MIN_VERSION_prettyprinter(1,7,0)
+import Prettyprinter (hsep)
+#else
 import Data.Text.Prettyprint.Doc (hsep)
+#endif
 
 import Clash.Core.DataCon (DataCon)
 import Clash.Core.Literal (Literal(CharLiteral))
diff --git a/src/Clash/Core/Pretty.hs b/src/Clash/Core/Pretty.hs
--- a/src/Clash/Core/Pretty.hs
+++ b/src/Clash/Core/Pretty.hs
@@ -37,8 +37,13 @@
 import Data.List.Extra                  ((<:>))
 import qualified Data.Text              as T
 import Data.Maybe                       (fromMaybe)
+#if MIN_VERSION_prettyprinter(1,7,0)
+import Prettyprinter
+import Prettyprinter.Internal
+#else
 import Data.Text.Prettyprint.Doc
 import Data.Text.Prettyprint.Doc.Internal
+#endif
 import GHC.Show                         (showMultiLineString)
 import Numeric                          (fromRat)
 #if MIN_VERSION_ghc(9,0,0)
diff --git a/src/Clash/Core/Subst.hs b/src/Clash/Core/Subst.hs
--- a/src/Clash/Core/Subst.hs
+++ b/src/Clash/Core/Subst.hs
@@ -57,7 +57,13 @@
 where
 
 import           Data.Coerce               (coerce)
+
+#if MIN_VERSION_prettyprinter(1,7,0)
+import           Prettyprinter
+#else
 import           Data.Text.Prettyprint.Doc
+#endif
+
 import qualified Data.List                 as List
 import qualified Data.List.Extra           as List
 import           Data.Ord                  (comparing)
diff --git a/src/Clash/Core/TermInfo.hs b/src/Clash/Core/TermInfo.hs
--- a/src/Clash/Core/TermInfo.hs
+++ b/src/Clash/Core/TermInfo.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE LambdaCase #-}
 {-# LANGUAGE NamedFieldPuns #-}
 {-# LANGUAGE OverloadedStrings #-}
@@ -6,7 +7,13 @@
 module Clash.Core.TermInfo where
 
 import Data.Maybe (fromMaybe)
+
+#if MIN_VERSION_prettyprinter(1,7,0)
+import Prettyprinter (line)
+#else
 import Data.Text.Prettyprint.Doc (line)
+#endif
+
 import Data.Text (isInfixOf)
 
 import Clash.Core.DataCon
diff --git a/src/Clash/Core/VarEnv.hs b/src/Clash/Core/VarEnv.hs
--- a/src/Clash/Core/VarEnv.hs
+++ b/src/Clash/Core/VarEnv.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE DeriveAnyClass #-}
 {-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
@@ -99,7 +100,13 @@
 import qualified Data.List                 as List
 import qualified Data.List.Extra           as List
 import           Data.Maybe                (fromMaybe)
+
+#if MIN_VERSION_prettyprinter(1,7,0)
+import           Prettyprinter
+#else
 import           Data.Text.Prettyprint.Doc
+#endif
+
 import           GHC.Exts                  (Any)
 import           GHC.Generics
 
diff --git a/src/Clash/Driver/Types.hs b/src/Clash/Driver/Types.hs
--- a/src/Clash/Driver/Types.hs
+++ b/src/Clash/Driver/Types.hs
@@ -26,7 +26,13 @@
 import           Data.Hashable
 import qualified Data.Set                       as Set
 import           Data.Text                      (Text)
+
+#if MIN_VERSION_prettyprinter(1,7,0)
+import           Prettyprinter
+#else
 import           Data.Text.Prettyprint.Doc
+#endif
+
 import           GHC.Generics                   (Generic)
 
 #if MIN_VERSION_ghc(9,0,0)
diff --git a/src/Clash/Edalize/Edam.hs b/src/Clash/Edalize/Edam.hs
--- a/src/Clash/Edalize/Edam.hs
+++ b/src/Clash/Edalize/Edam.hs
@@ -6,6 +6,7 @@
 Data types and rendering for Edalize Metadata files (EDAM).
 -}
 
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE LambdaCase #-}
 {-# LANGUAGE OverloadedStrings #-}
 
@@ -26,7 +27,12 @@
 import Data.Default
 import Data.Maybe
 import Data.Text (Text)
+
+#if MIN_VERSION_prettyprinter(1,7,0)
+import Prettyprinter
+#else
 import Data.Text.Prettyprint.Doc
+#endif
 
 -- | EDAM data structure to be given to an Edalize backend. This contains all
 -- information needed to generate a project scaffolding. Note that hooks and
diff --git a/src/Clash/Netlist/BlackBox/Util.hs b/src/Clash/Netlist/BlackBox/Util.hs
--- a/src/Clash/Netlist/BlackBox/Util.hs
+++ b/src/Clash/Netlist/BlackBox/Util.hs
@@ -38,7 +38,13 @@
 import qualified Data.Text
 import           Data.Text.Lazy                  (Text)
 import qualified Data.Text.Lazy                  as Text
+
+#if MIN_VERSION_prettyprinter(1,7,0)
+import qualified Prettyprinter                   as PP
+#else
 import qualified Data.Text.Prettyprint.Doc       as PP
+#endif
+
 import           Data.Text.Prettyprint.Doc.Extra
 import           System.FilePath                 (replaceBaseName, takeBaseName,
                                                   takeFileName, (<.>))
diff --git a/src/Clash/Netlist/Id/Internal.hs b/src/Clash/Netlist/Id/Internal.hs
--- a/src/Clash/Netlist/Id/Internal.hs
+++ b/src/Clash/Netlist/Id/Internal.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE MagicHash #-}
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE OverloadedStrings #-}
@@ -16,7 +17,13 @@
 import           Control.Arrow (second)
 import qualified Data.Char as Char
 import qualified Data.List as List
+
+#if MIN_VERSION_prettyprinter(1,7,0)
+import qualified Prettyprinter as PP
+#else
 import qualified Data.Text.Prettyprint.Doc as PP
+#endif
+
 import qualified Data.Text as Text
 import           Data.Text (Text)
 import qualified Data.Maybe as Maybe
diff --git a/src/Clash/Normalize.hs b/src/Clash/Normalize.hs
--- a/src/Clash/Normalize.hs
+++ b/src/Clash/Normalize.hs
@@ -30,7 +30,12 @@
 import qualified Data.Maybe                       as Maybe
 import qualified Data.Set                         as Set
 import qualified Data.Set.Lens                    as Lens
+
+#if MIN_VERSION_prettyprinter(1,7,0)
+import           Prettyprinter                    (vcat)
+#else
 import           Data.Text.Prettyprint.Doc        (vcat)
+#endif
 
 #if MIN_VERSION_ghc(9,0,0)
 import           GHC.Types.Basic                  (InlineSpec (..))
diff --git a/src/Clash/Pretty.hs b/src/Clash/Pretty.hs
--- a/src/Clash/Pretty.hs
+++ b/src/Clash/Pretty.hs
@@ -1,9 +1,16 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE QuasiQuotes #-}
 
 module Clash.Pretty where
 
+#if MIN_VERSION_prettyprinter(1,7,0)
+import Prettyprinter
+import Prettyprinter.Render.String
+#else
 import Data.Text.Prettyprint.Doc
 import Data.Text.Prettyprint.Doc.Render.String
+#endif
+
 import Data.Maybe (fromMaybe)
 import qualified System.Console.Terminal.Size as Terminal
 import System.Environment (lookupEnv)
diff --git a/src/Clash/Unique.hs b/src/Clash/Unique.hs
--- a/src/Clash/Unique.hs
+++ b/src/Clash/Unique.hs
@@ -79,10 +79,17 @@
 import           Data.IntMap (IntMap)
 import qualified Data.IntMap as IntMap
 import qualified Data.List   as List
+
+#if MIN_VERSION_prettyprinter(1,7,0)
+import           Prettyprinter
+#else
 import           Data.Text.Prettyprint.Doc
+#endif
+
 #if !MIN_VERSION_base(4,11,0)
 import           Data.Semigroup
 #endif
+
 import           GHC.Stack
 
 import           Clash.Pretty
diff --git a/src/Clash/Util.hs b/src/Clash/Util.hs
--- a/src/Clash/Util.hs
+++ b/src/Clash/Util.hs
@@ -38,8 +38,15 @@
 import Data.Maybe                     (fromMaybe, listToMaybe, catMaybes)
 import Data.Map.Ordered               (OMap)
 import qualified Data.Map.Ordered     as OMap
+
+#if MIN_VERSION_prettyprinter(1,7,0)
+import Prettyprinter
+import Prettyprinter.Render.String
+#else
 import Data.Text.Prettyprint.Doc
 import Data.Text.Prettyprint.Doc.Render.String
+#endif
+
 import Data.Time.Clock                (UTCTime)
 import qualified Data.Time.Clock      as Clock
 import qualified Data.Time.Format     as Clock
diff --git a/src/Data/Text/Prettyprint/Doc/Extra.hs b/src/Data/Text/Prettyprint/Doc/Extra.hs
--- a/src/Data/Text/Prettyprint/Doc/Extra.hs
+++ b/src/Data/Text/Prettyprint/Doc/Extra.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE FlexibleInstances #-}
 
 {-# OPTIONS_GHC -Wno-orphans #-}
@@ -16,9 +17,16 @@
 import           Data.String                           (IsString (..))
 import           Data.Text                             as T
 import           Data.Text.Lazy                        as LT
+
+#if MIN_VERSION_prettyprinter(1,7,0)
+import qualified Prettyprinter                         as PP
+import           Prettyprinter.Internal                hiding (Doc)
+import           Prettyprinter.Render.Text
+#else
 import qualified Data.Text.Prettyprint.Doc             as PP
 import           Data.Text.Prettyprint.Doc.Internal    hiding (Doc)
 import           Data.Text.Prettyprint.Doc.Render.Text
+#endif
 
 type Doc = PP.Doc ()
 
