diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,7 @@
+# 1.6.2 (Sep 2024)
+
+* Allow building with GHC 9.10.
+
 # 1.6.1 (Sep 2024)
 
 * Fix a bug in which `what4`'s CVC5 adapter would fail to parse models
diff --git a/src/What4/Expr/BoolMap.hs b/src/What4/Expr/BoolMap.hs
--- a/src/What4/Expr/BoolMap.hs
+++ b/src/What4/Expr/BoolMap.hs
@@ -34,7 +34,7 @@
 
 import           Control.Lens (_1, over)
 import           Data.Hashable
-import           Data.List (foldl')
+import qualified Data.List as List (foldl')
 import           Data.List.NonEmpty (NonEmpty(..))
 import           Data.Kind (Type)
 import           Data.Parameterized.Classes
@@ -150,7 +150,7 @@
 -- | Generate a bool map from a list of terms and polarities by repeatedly
 --   calling @addVar@.
 fromVars :: (HashableF f, OrdF f) => [(f BaseBoolType, Polarity)] -> BoolMap f
-fromVars = foldl' (\m (x,p) -> addVar x p m) (BoolMap AM.empty)
+fromVars = List.foldl' (\m (x,p) -> addVar x p m) (BoolMap AM.empty)
 
 -- | Merge two bool maps, performing resolution as necessary.
 combine :: OrdF f => BoolMap f -> BoolMap f -> BoolMap f
diff --git a/src/What4/Expr/WeightedSum.hs b/src/What4/Expr/WeightedSum.hs
--- a/src/What4/Expr/WeightedSum.hs
+++ b/src/What4/Expr/WeightedSum.hs
@@ -74,7 +74,7 @@
 import qualified Data.BitVector.Sized as BV
 import           Data.Hashable
 import           Data.Kind
-import           Data.List (foldl')
+import qualified Data.List as List (foldl')
 import           Data.Maybe
 import           Data.Parameterized.Classes
 
@@ -432,7 +432,7 @@
     traverse (_1 (traverseWrap f)) (AM.toList (_prodMap pd))
  where
   sr = prodRepr pd
-  rebuild = foldl' (\m (WrapF t, occ) -> AM.insert (WrapF t) (mkProdNote sr occ t) occ m) AM.empty
+  rebuild = List.foldl' (\m (WrapF t, occ) -> AM.insert (WrapF t) (mkProdNote sr occ t) occ m) AM.empty
 
 
 -- | This returns a variable times a constant.
diff --git a/src/What4/Solver/CVC5.hs b/src/What4/Solver/CVC5.hs
--- a/src/What4/Solver/CVC5.hs
+++ b/src/What4/Solver/CVC5.hs
@@ -35,7 +35,6 @@
 
 import           Control.Monad (forM_, when)
 import           Data.Bits
-import           Data.String
 import           System.IO
 import qualified System.IO.Streams as Streams
 
diff --git a/src/What4/Utils/AnnotatedMap.hs b/src/What4/Utils/AnnotatedMap.hs
--- a/src/What4/Utils/AnnotatedMap.hs
+++ b/src/What4/Utils/AnnotatedMap.hs
@@ -44,7 +44,6 @@
 
 import           Data.Functor.Identity
 import qualified Data.Foldable as Foldable
-import           Data.Foldable (foldl')
 import           Prelude hiding (null, filter, lookup)
 
 import qualified Data.FingerTree as FT
@@ -57,19 +56,19 @@
   FT.Measured v a =>
   (a -> Bool) -> FT.FingerTree v a -> FT.FingerTree v a
 filterFingerTree p =
-  foldl' (\xs x -> if p x then xs FT.|> x else xs) FT.empty
+  Foldable.foldl' (\xs x -> if p x then xs FT.|> x else xs) FT.empty
 
 mapMaybeFingerTree ::
   (FT.Measured v2 a2) =>
   (a1 -> Maybe a2) -> FT.FingerTree v1 a1 -> FT.FingerTree v2 a2
 mapMaybeFingerTree f =
-  foldl' (\xs x -> maybe xs (xs FT.|>) (f x)) FT.empty
+  Foldable.foldl' (\xs x -> maybe xs (xs FT.|>) (f x)) FT.empty
 
 traverseMaybeFingerTree ::
   (Applicative f, FT.Measured v2 a2) =>
   (a1 -> f (Maybe a2)) -> FT.FingerTree v1 a1 -> f (FT.FingerTree v2 a2)
 traverseMaybeFingerTree f =
-   foldl' (\m x -> rebuild <$> m <*> f x) (pure FT.empty)
+   Foldable.foldl' (\m x -> rebuild <$> m <*> f x) (pure FT.empty)
  where
  rebuild ys Nothing  = ys
  rebuild ys (Just y) = ys FT.|> y
diff --git a/src/What4/Utils/Environment.hs b/src/What4/Utils/Environment.hs
--- a/src/What4/Utils/Environment.hs
+++ b/src/What4/Utils/Environment.hs
@@ -24,7 +24,7 @@
 
 import Control.Monad.IO.Class
 import Data.Char
-import Data.List (foldl')
+import qualified Data.List as List (foldl')
 import Data.Map (Map)
 import qualified Data.Map as Map
 import qualified System.Directory as Sys
@@ -81,7 +81,7 @@
   let init_map = Map.fromList [ ("MSS_BINPATH", prog_path) ]
   -- Extend init_map with environment variables.
   env <- getEnvironment
-  let expanded_map = foldl' (\m (k,v) -> Map.insert k v m) init_map env
+  let expanded_map = List.foldl' (\m (k,v) -> Map.insert k v m) init_map env
   -- Return expanded path.
   expandVars (Map.union base_map expanded_map) path
 
diff --git a/src/What4/Utils/Word16String.hs b/src/What4/Utils/Word16String.hs
--- a/src/What4/Utils/Word16String.hs
+++ b/src/What4/Utils/Word16String.hs
@@ -20,7 +20,9 @@
 , take
 , append
 , length
-, foldl'
+-- Qualify this name to disambiguate it from the Prelude version of foldl'
+-- (defined in base-4.20 or later).
+, What4.Utils.Word16String.foldl'
 , findSubstring
 , isInfixOf
 , isPrefixOf
@@ -91,7 +93,7 @@
 --   where the 16bit words are encoded as two bytes
 --   in little-endian order.
 --
---   PRECONDITION: the input bytestring must 
+--   PRECONDITION: the input bytestring must
 --   have a length which is a multiple of 2.
 fromLEByteString :: ByteString -> Word16String
 fromLEByteString xs
diff --git a/test/InvariantSynthesis.hs b/test/InvariantSynthesis.hs
--- a/test/InvariantSynthesis.hs
+++ b/test/InvariantSynthesis.hs
@@ -13,7 +13,6 @@
 import           Data.Maybe
 import           System.Environment
 
-import qualified Data.BitVector.Sized as BV
 import           Data.Parameterized.Context
 import           Data.Parameterized.Map (MapF)
 import           Data.Parameterized.Nonce
diff --git a/what4.cabal b/what4.cabal
--- a/what4.cabal
+++ b/what4.cabal
@@ -1,6 +1,6 @@
 Cabal-version: 2.4
 Name:          what4
-Version:       1.6.1
+Version:       1.6.2
 Author:        Galois Inc.
 Maintainer:    rscott@galois.com, kquick@galois.com
 Copyright:     (c) Galois, Inc 2014-2023
@@ -9,7 +9,7 @@
 Build-type:    Simple
 Homepage:      https://github.com/GaloisInc/what4
 Bug-reports:   https://github.com/GaloisInc/what4/issues
-Tested-with:   GHC==8.6.5, GHC==8.8.4, GHC==8.10.7, GHC==9.0.2
+Tested-with:   GHC==8.8.4, GHC==8.10.7, GHC==9.0.2, GHC==9.2.2, GHC==9.4.4, GHC==9.6.2, GHC==9.8.1, GHC==9.10.1
 Category:      Formal Methods, Theorem Provers, Symbolic Computation, SMT
 Synopsis:      Solver-agnostic symbolic values support for issuing queries
 Description:
