diff --git a/Cabal/Cabal.cabal b/Cabal/Cabal.cabal
index 6722545d133cd425360ae697f36798d03c5d630e..2a0f4aef37c9563f10eccd9a043d64f7006bc03e 100644
--- a/Cabal/Cabal.cabal
+++ b/Cabal/Cabal.cabal
@@ -315,7 +315,7 @@ library
     Distribution.Compat.Exception
     Distribution.Compat.Graph
     Distribution.Compat.Internal.TempFile
-    Distribution.Compat.Prelude
+    Distribution.Compat.Prelude.Internal
     Distribution.Compat.ReadP
     Distribution.Compat.Semigroup
     Distribution.Compat.Stack
@@ -419,6 +419,7 @@ library
     Distribution.Compat.CopyFile
     Distribution.Compat.GetShortPathName
     Distribution.Compat.MonadFail
+    Distribution.Compat.Prelude
     Distribution.GetOpt
     Distribution.Lex
     Distribution.Simple.GHC.Internal
diff --git a/Cabal/Distribution/Compat/Prelude/Internal.hs b/Cabal/Distribution/Compat/Prelude/Internal.hs
new file mode 100644
index 0000000000000000000000000000000000000000..b3f998d331330dd45022f8b11272c28d3d044876
--- /dev/null
+++ b/Cabal/Distribution/Compat/Prelude/Internal.hs
@@ -0,0 +1,14 @@
+-- | This module re-exports the non-exposed
+-- "Distribution.Compat.Prelude" module for
+-- reuse by @cabal-install@'s
+-- "Distribution.Client.Compat.Prelude" module.
+--
+-- It is highly discouraged to rely on this module
+-- for @Setup.hs@ scripts since its API is /not/
+-- stable.
+module Distribution.Compat.Prelude.Internal
+    {-# WARNING "This modules' API is not stable. Use at your own risk, or better yet, use @base-compat@!" #-}
+    ( module Distribution.Compat.Prelude
+    ) where
+
+import Distribution.Compat.Prelude
diff --git a/cabal-install/Distribution/Client/Compat/Prelude.hs b/cabal-install/Distribution/Client/Compat/Prelude.hs
index 6b7413035a3e7c1d87e251244834dd5f76889757..1b233af4e4d30606b365adcbb36f30d0178fc295 100644
--- a/cabal-install/Distribution/Client/Compat/Prelude.hs
+++ b/cabal-install/Distribution/Client/Compat/Prelude.hs
@@ -1,5 +1,8 @@
 {-# LANGUAGE CPP #-}
 
+-- to suppress WARNING in "Distribution.Compat.Prelude.Internal"
+{-# OPTIONS_GHC -fno-warn-deprecations #-}
+
 -- | This module does two things:
 --
 -- * Acts as a compatiblity layer, like @base-compat@.
@@ -10,13 +13,13 @@
 -- this module re-exports)
 --
 module Distribution.Client.Compat.Prelude
-  ( module Distribution.Compat.Prelude
+  ( module Distribution.Compat.Prelude.Internal
   , Prelude.IO
   , readMaybe
   ) where
 
 import Prelude (IO)
-import Distribution.Compat.Prelude hiding (IO)
+import Distribution.Compat.Prelude.Internal hiding (IO)
 
 #if MIN_VERSION_base(4,6,0)
 import Text.Read