diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,12 @@
 
 Package versions follow the [Package Versioning Policy](https://pvp.haskell.org/): in A.B.C, bumps to either A or B represent major versions.
 
+0.20.2
+----
+
+- Full query string helpers [#1604](https://github.com/haskell-servant/servant/pull/1604)
+  This involves exporting `setQueryString` from Servant.Client.Core.Request.
+
 0.20
 ----
 
diff --git a/servant-client-core.cabal b/servant-client-core.cabal
--- a/servant-client-core.cabal
+++ b/servant-client-core.cabal
@@ -1,6 +1,6 @@
 cabal-version:      3.0
 name:               servant-client-core
-version:            0.20.1
+version:            0.20.2
 synopsis:
   Core functionality and class for client function generation for servant APIs
 
@@ -20,7 +20,7 @@
 
 build-type:         Simple
 tested-with:
-  GHC ==8.10.7 || ==9.0.2 || ==9.2.8 || ==9.4.8 || ==9.6.4 || ==9.8.2
+  GHC ==8.10.7 || ==9.0.2 || ==9.2.8 || ==9.4.8 || ==9.6.4 || ==9.8.2 || ==9.10.1
 
 extra-source-files:
   CHANGELOG.md
@@ -102,16 +102,16 @@
   --
   -- note: mtl lower bound is so low because of GHC-7.8
   build-depends:
-    , base              >=4.9      && <4.20
+    , base              >=4.14     && <4.21
     , bytestring        >=0.10.8.1 && <0.13
     , constraints       >=0.2      && <0.15
-    , containers        >=0.5.7.1  && <0.7
+    , containers        >=0.5.7.1  && <0.8
     , deepseq           >=1.4.2.0  && <1.6
-    , template-haskell  >=2.11.1.0 && <2.22
+    , template-haskell  >=2.11.1.0 && <2.23
     , text              >=1.2.3.0  && <2.2
 
   -- Servant dependencies
-  build-depends:   servant >=0.20
+  build-depends:   servant >=0.20.2
 
   -- Other dependencies: Lower bound around what is in the latest Stackage LTS.
   -- Here can be exceptions if we really need features from the newer versions.
@@ -149,6 +149,6 @@
   build-depends:
     , deepseq     >=1.4.2.0  && <1.6
     , hspec       >=2.6.0    && <2.12
-    , QuickCheck  >=2.12.6.1 && <2.15
+    , QuickCheck  >=2.12.6.1 && <2.16
 
   build-tool-depends: hspec-discover:hspec-discover >=2.6.0 && <2.12
diff --git a/src/Servant/Client/Core/HasClient.hs b/src/Servant/Client/Core/HasClient.hs
--- a/src/Servant/Client/Core/HasClient.hs
+++ b/src/Servant/Client/Core/HasClient.hs
@@ -26,10 +26,7 @@
                  (toList)
 import           Data.Kind
                  (Type)
-#if !MIN_VERSION_base_compat(0,14,0)
-import           Data.List
-                 (foldl')
-#endif
+import qualified Data.List as List
 import           Data.Sequence
                  (fromList)
 import qualified Data.Text                       as T
@@ -232,7 +229,7 @@
 
   clientWithRoute pm Proxy req vals =
     clientWithRoute pm (Proxy :: Proxy sublayout)
-                    (foldl' (flip appendToPath) req ps)
+                    (List.foldl' (flip appendToPath) req ps)
 
     where ps = map toEncodedUrlPiece vals
 
@@ -603,7 +600,7 @@
 
   clientWithRoute pm Proxy req paramlist =
     clientWithRoute pm (Proxy :: Proxy api)
-                    (foldl' (\ req' -> maybe req' (flip (appendToQueryString pname) req' . Just))
+                    (List.foldl' (\ req' -> maybe req' (flip (appendToQueryString pname) req' . Just))
                             req
                             paramlist'
                     )
@@ -672,7 +669,7 @@
 
   clientWithRoute pm Proxy req deepObject =
     let params = toDeepQuery deepObject
-        withParams = foldl' addDeepParam req params
+        withParams = List.foldl' addDeepParam req params
         addDeepParam r' kv =
           let (k, textV) = generateDeepParam paramname kv
            in appendToQueryString k (encodeUtf8 <$> textV) r'
