diff --git a/hw-dsv.cabal b/hw-dsv.cabal
--- a/hw-dsv.cabal
+++ b/hw-dsv.cabal
@@ -1,7 +1,7 @@
 cabal-version: 2.2
 
 name:                   hw-dsv
-version:                0.4.1.1
+version:                0.4.1.2
 synopsis:               Unbelievably fast streaming DSV file parser
 description:            Please see the README on Github at <https://github.com/haskell-works/hw-dsv#readme>
 category:               Text, CSV, SIMD, Succinct Data Structures, Data Structures
@@ -41,16 +41,16 @@
 
 common appar                      { build-depends: appar                      >= 0.1.8      && < 0.2    }
 common bits-extra                 { build-depends: bits-extra                 >= 0.0.1.2    && < 0.1    }
-common bytestring                 { build-depends: bytestring                 >= 0.10       && < 0.12   }
+common bytestring                 { build-depends: bytestring                 >= 0.10       && < 0.13   }
 common cassava                    { build-depends: cassava                    >= 0.5.1.0    && < 0.6    }
-common criterion                  { build-depends: criterion                  >= 1.4.1.0    && < 1.6    }
-common deepseq                    { build-depends: deepseq                    >= 1.4        && < 1.5    }
+common criterion                  { build-depends: criterion                  >= 1.4.1.0    && < 1.7    }
+common deepseq                    { build-depends: deepseq                    >= 1.4        && < 1.6    }
 common directory                  { build-depends: directory                  >= 1.2.2      && < 1.4    }
-common doctest                    { build-depends: doctest                    >= 0.16.2     && < 0.21   }
+common doctest                    { build-depends: doctest                    >= 0.16.2     && < 0.23   }
 common doctest-discover           { build-depends: doctest-discover           >= 0.2        && < 0.3    }
 common generic-lens               { build-depends: generic-lens               >= 2.2        && < 2.3    }
-common ghc-prim                   { build-depends: ghc-prim                   >= 0.4        && < 0.9    }
-common hedgehog                   { build-depends: hedgehog                   >= 0.5        && < 1.2    }
+common ghc-prim                   { build-depends: ghc-prim                   >= 0.4        && < 1      }
+common hedgehog                   { build-depends: hedgehog                   >= 0.5        && < 1.5    }
 common hspec                      { build-depends: hspec                      >= 2.4        && < 3      }
 common hw-bits                    { build-depends: hw-bits                    >= 0.7.0.2    && < 0.8    }
 common hw-hspec-hedgehog          { build-depends: hw-hspec-hedgehog          >= 0.1.0.4    && < 0.2    }
@@ -61,11 +61,11 @@
 common hw-simd                    { build-depends: hw-simd                    >= 0.1.1.3    && < 0.2    }
 common lens                       { build-depends: lens                       >= 4.15       && < 6      }
 common mmap                       { build-depends: mmap                       >= 0.5.9      && < 0.6    }
-common optparse-applicative       { build-depends: optparse-applicative       >= 0.13       && < 0.18   }
-common resourcet                  { build-depends: resourcet                  >= 1.1        && < 1.3    }
-common text                       { build-depends: text                       >= 1.2.2      && < 2.0    }
+common optparse-applicative       { build-depends: optparse-applicative       >= 0.13       && < 0.19   }
+common resourcet                  { build-depends: resourcet                  >= 1.1        && < 1.4    }
+common text                       { build-depends: text                       >= 1.2.2      && < 3      }
 common transformers               { build-depends: transformers               >= 0.4        && < 0.7    }
-common vector                     { build-depends: vector                     >= 0.12.0.1   && < 0.13   }
+common vector                     { build-depends: vector                     >= 0.12.0.1   && < 0.14   }
 common weigh                      { build-depends: weigh                      >= 0.0.6      && < 0.1    }
 
 common config
diff --git a/src/HaskellWorks/Data/Dsv/Internal/Vector.hs b/src/HaskellWorks/Data/Dsv/Internal/Vector.hs
--- a/src/HaskellWorks/Data/Dsv/Internal/Vector.hs
+++ b/src/HaskellWorks/Data/Dsv/Internal/Vector.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP           #-}
 {-# LANGUAGE MagicHash           #-}
 {-# LANGUAGE RankNTypes          #-}
 {-# LANGUAGE ScopedTypeVariables #-}
@@ -40,7 +41,11 @@
 {-# INLINE constructNS #-}
 
 ltWord :: Word64 -> Word64 -> Word64
+#if MIN_VERSION_base(4,17,2)
+ltWord (W64# a#) (W64# b#) = fromIntegral (I# (ltWord64# a# b#))
+#else
 ltWord (W64# a#) (W64# b#) = fromIntegral (I64# (ltWord# a# b#))
+#endif
 {-# INLINE ltWord #-}
 
 indexCsvChunk ::
diff --git a/test/HaskellWorks/Data/Dsv/Strict/Cursor/InternalSpec.hs b/test/HaskellWorks/Data/Dsv/Strict/Cursor/InternalSpec.hs
--- a/test/HaskellWorks/Data/Dsv/Strict/Cursor/InternalSpec.hs
+++ b/test/HaskellWorks/Data/Dsv/Strict/Cursor/InternalSpec.hs
@@ -1,6 +1,7 @@
 {-# LANGUAGE BangPatterns        #-}
 {-# LANGUAGE OverloadedStrings   #-}
 {-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE TypeApplications    #-}
 
 module HaskellWorks.Data.Dsv.Strict.Cursor.InternalSpec (spec) where
 
@@ -42,26 +43,26 @@
       let !expected = DVS.foldr (\a b -> popCount1 a + b) 0 (       SVS.mkIbVector  pipe v)
       actual === expected
   it "Case 2" $ requireTest $ do
-    bs :: ByteString <- forAll $ T.encodeUtf8 . T.pack <$> G.string (R.linear 0 128) (G.element " \"|\n")
+    bs :: ByteString <- forAll $ T.encodeUtf8 . T.pack <$> G.string (R.linear 0 128) (G.element (id @String " \"|\n"))
     v <- forAll $ pure $ fromByteString bs
     let !actual   = DVS.foldr (\a b -> popCount1 a + b) 0 (fst $ SVS.makeIndexes pipe v)
     let !expected = DVS.foldr (\a b -> popCount1 a + b) 0 (      SVS.mkIbVector  pipe v)
     actual === expected
   it "Case 3" $ requireTest $ do
-    bs :: ByteString <- forAll $ T.encodeUtf8 . T.pack <$> G.string (R.linear 0 128) (G.element " \"|\n")
+    bs :: ByteString <- forAll $ T.encodeUtf8 . T.pack <$> G.string (R.linear 0 128) (G.element (id @String " \"|\n"))
     v <- forAll $ pure $ fromByteString bs
     let !actual   = DVS.foldr (\a b -> popCount1 a + b) 0 (fst $ SVS.makeIndexes pipe v)
     let !expected = DVS.foldr (\a b -> popCount1 a + b) 0 (      SVS.mkIbVector  pipe v)
     actual === expected
   it "Case 4" $ requireTest $ do
-    bs :: ByteString <- forAll $ T.encodeUtf8 . T.pack <$> G.string (R.linear 0 10000) (G.element " \"")
+    bs :: ByteString <- forAll $ T.encodeUtf8 . T.pack <$> G.string (R.linear 0 10000) (G.element (id @String " \""))
     v <- forAll $ pure $ fromByteString bs
     numQuotes <- forAll $ pure $ BS.length $ BS.filter (== fromIntegral (ord '"')) bs
     u <- forAll $ pure $ fst $ SVS.makeIndexes pipe v
     let !pc = DVS.foldr (\a b -> popCount1 a + b) 0 u
     pc === fromIntegral numQuotes
   it "Case 5" $ requireTest $ do
-    bs :: ByteString <- forAll $ T.encodeUtf8 . T.pack <$> G.string (R.linear 0 10000) (G.element " \"")
+    bs :: ByteString <- forAll $ T.encodeUtf8 . T.pack <$> G.string (R.linear 0 10000) (G.element (id @String " \""))
     v <- forAll $ pure $ fromByteString bs
     u <- forAll $ pure $ fst $ SVS.makeIndexes pipe v
     let !expected =            SVS.mkIbVector  pipe v
