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.37.0.
+-- This file has been generated from package.yaml by hpack version 0.38.3.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 58f13b9d5070155fb407ce862cb2cbd07aa2d92494375efb694abdf430d58e25
+-- hash: ed3697e1e741113517bee3673a8bafbdf36ee787a7854302ea7333bc73ffd2e5
 
 name:           retroclash-lib
-version:        0.1.2.3
+version:        0.1.2.4
 synopsis:       Code shared across the code samples in the book "Retrocomputing with Clash"
 description:    Clash components useful when implementing, or interfacing with,
                 retro-computers:
@@ -97,15 +97,15 @@
       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
+      barbies >=2.0.1 && <3
     , base >=4.14 && <5
-    , clash-ghc >=1.4.2 && <2.0
-    , clash-lib >=1.4.2 && <2.0
-    , clash-prelude >=1.4.2 && <2.0
+    , clash-ghc >=1.4.2 && <2
+    , clash-lib >=1.4.2 && <2
+    , clash-prelude >=1.4.2 && <2
     , containers <0.8
-    , ghc-typelits-extra <=1.0
-    , ghc-typelits-knownnat <=1.0
-    , ghc-typelits-natnormalise <=1.0
+    , ghc-typelits-extra <1
+    , ghc-typelits-knownnat <1
+    , ghc-typelits-natnormalise <1
     , lens <6
     , lift-type ==0.1.*
     , monoidal-containers ==0.6.*
diff --git a/src/RetroClash/Delayed.hs b/src/RetroClash/Delayed.hs
--- a/src/RetroClash/Delayed.hs
+++ b/src/RetroClash/Delayed.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE RecordWildCards, RankNTypes #-}
+{-# LANGUAGE CPP #-}
 module RetroClash.Delayed
     ( delayVGA
 
@@ -61,7 +62,11 @@
 
 delayedBlockRam1
     :: (1 <= n, Enum addr, NFDataX addr, NFDataX a, HiddenClockResetEnable dom)
+#if MIN_VERSION_clash_prelude(1,10,0)
+    => ResetStrategy r ()
+#else
     => ResetStrategy r
+#endif
     -> SNat n
     -> a
     -> DSignal dom d addr
diff --git a/src/RetroClash/Utils.hs b/src/RetroClash/Utils.hs
--- a/src/RetroClash/Utils.hs
+++ b/src/RetroClash/Utils.hs
@@ -1,5 +1,6 @@
 {-# LANGUAGE ScopedTypeVariables, ApplicativeDo, Rank2Types #-}
 {-# LANGUAGE TupleSections #-}
+{-# LANGUAGE CPP #-}
 module RetroClash.Utils
     ( withResetEnableGen
     , withEnableGen
@@ -152,6 +153,7 @@
     fromActive = fromActiveDyn Low . activeLevel
     toActive = MkActive . toActiveDyn Low
 
+#if !MIN_VERSION_clash_prelude(1,10,0)
 infix 4 ==.
 (==.) :: (Eq a, Functor f) => a -> f a -> f Bool
 x ==. fy = (x ==) <$> fy
@@ -187,6 +189,7 @@
 infix 4 <=.
 (<=.) :: (Ord a, Functor f) => a -> f a -> f Bool
 x <=. fy = (x <=) <$> fy
+#endif
 
 (.!!.) :: (KnownNat n, Enum i, Applicative f) => f (Vec n a) -> f i -> f a
 (.!!.) = liftA2 (!!)
@@ -265,7 +268,7 @@
 singlePort mem addr wr = mem addr (packWrite <$> addr <*> wr)
 
 unbraid
-    :: (KnownNat n, KnownNat k, 1 <= n, 1 <= (n * 2 ^ k), (CLog 2 (2 ^ k)) ~ k, (CLog 2 (n * 2 ^ k)) ~ (CLog 2 n + k))
+    :: (KnownNat n, KnownNat k, 1 <= n, 1 <= (n * 2 ^ k), BitSize (Index (n * 2 ^ k)) ~ BitSize (Index n) + BitSize (Index (2 ^ k)))
     => Maybe (Index (n * 2 ^ k))
     -> Vec (2 ^ k) (Maybe (Index n))
 unbraid Nothing = repeat Nothing
@@ -310,7 +313,7 @@
 half x = x `shiftR` 1
 
 halfIndex
-    :: (KnownNat n, 1 <= (2 * n), (CLog 2 (2 * n)) ~ (CLog 2 n + 1))
+    :: (KnownNat n, 1 <= (2 * n), BitSize (Index (2 * n)) ~ BitSize (Index n) + 1)
     => Index (2 * n)
     -> Index n
 halfIndex = fst . bitCoerce @_ @(_, Bit)
