diff --git a/retroclash-lib.cabal b/retroclash-lib.cabal
--- a/retroclash-lib.cabal
+++ b/retroclash-lib.cabal
@@ -1,13 +1,13 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.34.4.
+-- This file has been generated from package.yaml by hpack version 0.36.0.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 8f9ca051aa92c6c0a5af71f156fa0e2a1312206a17ed5f78de27b0bb14b7527c
+-- hash: 22e2ca64db5edae2c612198d87c170364e623ad7b1bbdbd6b31ad2769b65fa4b
 
 name:           retroclash-lib
-version:        0.1.2.1
+version:        0.1.2.2
 synopsis:       Code shared across the code samples in the book "Retrocomputing with Clash"
 description:    Clash components useful when implementing, or interfacing with,
                 retro-computers:
@@ -94,15 +94,14 @@
       TemplateHaskell
       TypeApplications
       TypeFamilies
-      TypeInType
       TypeOperators
   ghc-options: -fexpose-all-unfoldings -fno-worker-wrapper -fplugin GHC.TypeLits.KnownNat.Solver -fplugin GHC.TypeLits.Normalise -fplugin GHC.TypeLits.Extra.Solver
   build-depends:
       barbies >=2.0.1 && <2.1
     , base >=4.14 && <5
-    , clash-ghc >=1.4.2 && <1.5 || >=1.6.1 && <1.7
-    , clash-lib >=1.4.2 && <1.5 || >=1.6.1 && <1.7
-    , clash-prelude >=1.4.2 && <1.5 || >=1.6.1 && <1.7
+    , clash-ghc >=1.4.2 && <1.5 || >=1.6.1 && <1.7 || >=1.8.1 && <1.9
+    , clash-lib >=1.4.2 && <1.5 || >=1.6.1 && <1.7 || >=1.8.1 && <1.9
+    , clash-prelude >=1.4.2 && <1.5 || >=1.6.1 && <1.7 || >=1.8.1 && <1.9
     , containers
     , ghc-typelits-extra
     , ghc-typelits-knownnat
diff --git a/src/RetroClash/CPU.hs b/src/RetroClash/CPU.hs
--- a/src/RetroClash/CPU.hs
+++ b/src/RetroClash/CPU.hs
@@ -10,6 +10,7 @@
 import Control.Monad.Writer
 import Control.Monad.State
 import Control.Lens (Setter', scribe, iso)
+import Data.Monoid (Last(..))
 
 import Barbies
 import Barbies.Bare
diff --git a/src/RetroClash/Delayed.hs b/src/RetroClash/Delayed.hs
--- a/src/RetroClash/Delayed.hs
+++ b/src/RetroClash/Delayed.hs
@@ -60,7 +60,7 @@
 delayedRom syncRom addr = unsafeFromSignal $ syncRom (toSignal addr)
 
 delayedBlockRam1
-    :: (1 <= n, Enum addr, NFDataX a, HiddenClockResetEnable dom)
+    :: (1 <= n, Enum addr, NFDataX addr, NFDataX a, HiddenClockResetEnable dom)
     => ResetStrategy r
     -> SNat n
     -> a
diff --git a/src/RetroClash/I2C.hs b/src/RetroClash/I2C.hs
--- a/src/RetroClash/I2C.hs
+++ b/src/RetroClash/I2C.hs
@@ -1,10 +1,11 @@
-{-# LANGUAGE StandaloneDeriving, LambdaCase #-}
+{-# LANGUAGE StandaloneDeriving, LambdaCase, UndecidableInstances #-}
 {-# OPTIONS_GHC -fconstraint-solver-iterations=10 #-}
 module RetroClash.I2C (i2cMaster) where
 
 import Clash.Prelude
 import RetroClash.Utils
 import RetroClash.Clock
+import Control.Monad (when)
 import Control.Monad.State
 import Data.Maybe (isJust, isNothing)
 
diff --git a/src/RetroClash/Memory.hs b/src/RetroClash/Memory.hs
--- a/src/RetroClash/Memory.hs
+++ b/src/RetroClash/Memory.hs
@@ -37,7 +37,7 @@
 import Data.Map.Monoidal as Map
 
 import Language.Haskell.TH hiding (Type)
-import Language.Haskell.TH.Instances
+import Language.Haskell.TH.Instances ()
 import LiftType
 import Type.Reflection (Typeable)
 
diff --git a/src/RetroClash/PS2.hs b/src/RetroClash/PS2.hs
--- a/src/RetroClash/PS2.hs
+++ b/src/RetroClash/PS2.hs
@@ -19,6 +19,7 @@
 import Clash.Class.HasDomain
 import RetroClash.Utils
 import RetroClash.Clock
+import Control.Monad (guard, when)
 import Control.Monad.State
 import Control.Monad.Trans.Writer
 import Data.Monoid (Last(..))
diff --git a/src/RetroClash/SerialRx.hs b/src/RetroClash/SerialRx.hs
--- a/src/RetroClash/SerialRx.hs
+++ b/src/RetroClash/SerialRx.hs
@@ -11,6 +11,7 @@
 import RetroClash.Utils
 import RetroClash.Clock
 
+import Control.Monad (when)
 import Control.Monad.State
 import Control.Monad.Trans.Writer
 import Data.Monoid
diff --git a/src/RetroClash/SerialTx.hs b/src/RetroClash/SerialTx.hs
--- a/src/RetroClash/SerialTx.hs
+++ b/src/RetroClash/SerialTx.hs
@@ -12,9 +12,11 @@
 import RetroClash.Utils
 import RetroClash.Clock
 
+import Control.Monad (mplus)
 import Control.Monad.State
 import Control.Monad.Writer
 import Data.Foldable (traverse_)
+import Data.Monoid (Any(..))
 import Data.Word
 
 data TxState n
diff --git a/src/RetroClash/Utils.hs b/src/RetroClash/Utils.hs
--- a/src/RetroClash/Utils.hs
+++ b/src/RetroClash/Utils.hs
@@ -75,6 +75,7 @@
 import Clash.Prelude
 import RetroClash.Clock
 import Data.Maybe (fromMaybe)
+import Control.Monad (guard)
 import Control.Monad.State
 import qualified Data.Foldable as F
 import Data.Monoid
