diff --git a/libraries/base/GHC/Arr.hs b/libraries/base/GHC/Arr.hs
index 307b31e9ff09b4c6b03cecea661f7e367c5e2f4f..9f24355e66f1cba281a03f010f09511b9dc8a47c 100644
--- a/libraries/base/GHC/Arr.hs
+++ b/libraries/base/GHC/Arr.hs
@@ -15,6 +15,11 @@
 --
 -- GHC\'s array implementation.
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -----------------------------------------------------------------------------
 
 module GHC.Arr (
diff --git a/libraries/base/GHC/Conc.hs b/libraries/base/GHC/Conc.hs
index fbb7521860e76c1eee6690804cdf3bb169ac4691..654d7af41ab818d1516c31b7e996ca63ad65c521 100644
--- a/libraries/base/GHC/Conc.hs
+++ b/libraries/base/GHC/Conc.hs
@@ -6,7 +6,7 @@
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  GHC.Conc
--- Copyright   :  (c) The University of Glasgow, 1994-2002
+-- Copyright   :  (c) The University of Glasgow, 1994-2023
 -- License     :  see libraries/base/LICENSE
 --
 -- Maintainer  :  cvs-ghc@haskell.org
@@ -15,6 +15,11 @@
 --
 -- Basic concurrency stuff.
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -----------------------------------------------------------------------------
 
 -- No: #hide, because bits of this module are exposed by the stm package.
diff --git a/libraries/base/GHC/Conc/IO.hs b/libraries/base/GHC/Conc/IO.hs
index 4f7795e3693bc8355d932b2ba1f06014da52d67f..f92e282d250c4976a96192c700dfc1569949d47d 100644
--- a/libraries/base/GHC/Conc/IO.hs
+++ b/libraries/base/GHC/Conc/IO.hs
@@ -18,6 +18,11 @@
 --
 -- Basic concurrency stuff.
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -----------------------------------------------------------------------------
 
 -- No: #hide, because bits of this module are exposed by the stm package.
diff --git a/libraries/base/GHC/Desugar.hs b/libraries/base/GHC/Desugar.hs
index bf25c99bb185db6ca52ac3e5161cef65e5414d36..3455d59d539ffaee6f79238b3de2ea47919cd4bc 100644
--- a/libraries/base/GHC/Desugar.hs
+++ b/libraries/base/GHC/Desugar.hs
@@ -17,6 +17,11 @@
 --
 -- Support code for desugaring in GHC
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -----------------------------------------------------------------------------
 
 module GHC.Desugar ((>>>), AnnotationWrapper(..), toAnnotationWrapper) where
diff --git a/libraries/base/GHC/Encoding/UTF8.hs b/libraries/base/GHC/Encoding/UTF8.hs
index 72ac176263fe698ab43f4b9b92f2f2b05c852c62..8098098b395199e5b96b300e4dcfc3c9a0db0c56 100644
--- a/libraries/base/GHC/Encoding/UTF8.hs
+++ b/libraries/base/GHC/Encoding/UTF8.hs
@@ -2,7 +2,21 @@
 {-# LANGUAGE BangPatterns, MagicHash, UnboxedTuples, NoImplicitPrelude #-}
 {-# OPTIONS_GHC -O2 -fno-warn-name-shadowing #-}
 
--- | Simple UTF-8 codecs supporting non-streaming encoding/decoding.
+-- |
+-- Module      :  GHC.Encoding.UTF8
+-- Copyright   :  (c) The University of Glasgow, 1994-2023
+-- License     :  see libraries/base/LICENSE
+--
+-- Maintainer  :  cvs-ghc@haskell.org
+-- Stability   :  internal
+-- Portability :  non-portable (GHC extensions)
+--
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
+-- Simple UTF-8 codecs supporting non-streaming encoding/decoding.
 -- For encoding where codepoints may be broken across buffers,
 -- see "GHC.IO.Encoding.UTF8".
 --
diff --git a/libraries/base/GHC/Event/TimeOut.hs b/libraries/base/GHC/Event/TimeOut.hs
index 4f525de1370546482e1d70f54901d2e9803dda6d..8048588b3e2cda253339ba8c8867508fc2827756 100644
--- a/libraries/base/GHC/Event/TimeOut.hs
+++ b/libraries/base/GHC/Event/TimeOut.hs
@@ -11,6 +11,11 @@
 --
 -- Common Timer definitions shared between WinIO and RIO.
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -------------------------------------------------------------------------------
 
 module GHC.Event.TimeOut where
diff --git a/libraries/base/GHC/Exception.hs b/libraries/base/GHC/Exception.hs
index 55293ea1b14e1060dbc610370dfdbcc090864cc5..572df1e07d1fecbc5540715d03b918f50d849b52 100644
--- a/libraries/base/GHC/Exception.hs
+++ b/libraries/base/GHC/Exception.hs
@@ -20,6 +20,11 @@
 --
 -- Exceptions and exception-handling functions.
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -----------------------------------------------------------------------------
 
 module GHC.Exception
diff --git a/libraries/base/GHC/Exception/Type.hs b/libraries/base/GHC/Exception/Type.hs
index 7f915b0c5a9791f688d26c3848b55ce3d9677472..4721ea310e0d97c045f6878e3cd07c728bb5da4e 100644
--- a/libraries/base/GHC/Exception/Type.hs
+++ b/libraries/base/GHC/Exception/Type.hs
@@ -16,6 +16,11 @@
 --
 -- Exceptions and exception-handling functions.
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -----------------------------------------------------------------------------
 
 module GHC.Exception.Type
diff --git a/libraries/base/GHC/ExecutionStack/Internal.hsc b/libraries/base/GHC/ExecutionStack/Internal.hsc
index 87b2e419004e05d11e6fd694996e4e8164c282cf..5d616888c24dfe7c90f1521dda42f549ae794bdf 100644
--- a/libraries/base/GHC/ExecutionStack/Internal.hsc
+++ b/libraries/base/GHC/ExecutionStack/Internal.hsc
@@ -8,7 +8,12 @@
 -- Stability   :  internal
 -- Portability :  non-portable (GHC Extensions)
 --
--- Internals of the `GHC.ExecutionStack` module
+-- Internals of the "GHC.ExecutionStack" module.
+--
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
 --
 -- @since 4.9.0.0
 -----------------------------------------------------------------------------
diff --git a/libraries/base/GHC/Fingerprint/Type.hs b/libraries/base/GHC/Fingerprint/Type.hs
index 15e9d73983e89b2c3ad83f189e0c5a0d15154e54..5939cc9ba4ff1c4c2f076f4a30ef13132bedc6f4 100644
--- a/libraries/base/GHC/Fingerprint/Type.hs
+++ b/libraries/base/GHC/Fingerprint/Type.hs
@@ -1,14 +1,22 @@
 {-# LANGUAGE Trustworthy #-}
 {-# LANGUAGE NoImplicitPrelude #-}
 
--- ----------------------------------------------------------------------------
+-- |
+-- Module      :  GHC.Fingerprint.Type
+-- Copyright   :  (c) The University of Glasgow, 1994-2023
+-- License     :  see libraries/base/LICENSE
 --
---  (c) The University of Glasgow 2006
+-- Maintainer  :  cvs-ghc@haskell.org
+-- Stability   :  internal
+-- Portability :  non-portable (GHC extensions)
 --
 -- Fingerprints for recompilation checking and ABI versioning, and
 -- implementing fast comparison of Typeable.
 --
--- ----------------------------------------------------------------------------
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
 
 module GHC.Fingerprint.Type (Fingerprint(..)) where
 
diff --git a/libraries/base/GHC/Float/RealFracMethods.hs b/libraries/base/GHC/Float/RealFracMethods.hs
index 35a961579bc2bf5a6082391577c2f20aa095308e..af5413dbe19dd915103657240db499af1051c479 100644
--- a/libraries/base/GHC/Float/RealFracMethods.hs
+++ b/libraries/base/GHC/Float/RealFracMethods.hs
@@ -15,7 +15,12 @@
 -- Methods for the RealFrac instances for 'Float' and 'Double',
 -- with specialised versions for 'Int'.
 --
--- Moved to their own module to not bloat GHC.Float further.
+-- Moved to their own module to not bloat "GHC.Float" further.
+--
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
 --
 -----------------------------------------------------------------------------
 
diff --git a/libraries/base/GHC/GHCi.hs b/libraries/base/GHC/GHCi.hs
index 0370dfb19eb4029276cd6a6fcfbfa128255e41ea..49fbd2e94ee412b6b66bad11863584b8f132d544 100644
--- a/libraries/base/GHC/GHCi.hs
+++ b/libraries/base/GHC/GHCi.hs
@@ -15,6 +15,11 @@
 --
 -- EXPERIMENTAL! DON'T USE.
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -----------------------------------------------------------------------------
 
 module GHC.GHCi {-# WARNING "This is an unstable interface." #-} (
diff --git a/libraries/base/GHC/GHCi/Helpers.hs b/libraries/base/GHC/GHCi/Helpers.hs
index de510f3674ea599571c8fcb4516c2d86771fbbf6..fdf3890c1cf2623f5806a0786937629c4ac60654 100644
--- a/libraries/base/GHC/GHCi/Helpers.hs
+++ b/libraries/base/GHC/GHCi/Helpers.hs
@@ -10,6 +10,11 @@
 --
 -- Various helpers used by the GHCi shell.
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -----------------------------------------------------------------------------
 
 module GHC.GHCi.Helpers
diff --git a/libraries/base/GHC/IO.hs b/libraries/base/GHC/IO.hs
index f59727771077af132e93ca182987b766a4caebf6..74eb3bd12a6b824a6d7e8b224027f1ffc5cc1da3 100644
--- a/libraries/base/GHC/IO.hs
+++ b/libraries/base/GHC/IO.hs
@@ -12,7 +12,7 @@
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  GHC.IO
--- Copyright   :  (c) The University of Glasgow 1994-2002
+-- Copyright   :  (c) The University of Glasgow 1994-2023
 -- License     :  see libraries/base/LICENSE
 --
 -- Maintainer  :  cvs-ghc@haskell.org
@@ -21,6 +21,11 @@
 --
 -- Definitions for the 'IO' monad and its friends.
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -----------------------------------------------------------------------------
 
 module GHC.IO (
diff --git a/libraries/base/GHC/IO/Buffer.hs b/libraries/base/GHC/IO/Buffer.hs
index 992733d645191181062eca50e557d1510af8c73c..f4646fa913e8c870a7430885df42cf4680b8c9b0 100644
--- a/libraries/base/GHC/IO/Buffer.hs
+++ b/libraries/base/GHC/IO/Buffer.hs
@@ -14,6 +14,11 @@
 --
 -- Buffers used in the IO system
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -----------------------------------------------------------------------------
 
 module GHC.IO.Buffer (
diff --git a/libraries/base/GHC/IO/Device.hs b/libraries/base/GHC/IO/Device.hs
index 9f5c6d21a06f37c4f0e33006b16e3157f0aaa1f3..4af789a3aed84bdb3c85ebc7ed654a32dd5c3a2b 100644
--- a/libraries/base/GHC/IO/Device.hs
+++ b/libraries/base/GHC/IO/Device.hs
@@ -13,6 +13,11 @@
 --
 -- Type classes for I/O providers.
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -----------------------------------------------------------------------------
 
 module GHC.IO.Device (
diff --git a/libraries/base/GHC/IO/Encoding.hs b/libraries/base/GHC/IO/Encoding.hs
index ab2599559d960d817fa160ccde16b6017a7c8318..01b22e2a31361013f8a5771e5dc038cd26aaf69a 100644
--- a/libraries/base/GHC/IO/Encoding.hs
+++ b/libraries/base/GHC/IO/Encoding.hs
@@ -15,6 +15,11 @@
 --
 -- Text codecs for I/O
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -----------------------------------------------------------------------------
 
 module GHC.IO.Encoding (
diff --git a/libraries/base/GHC/IO/Exception.hs b/libraries/base/GHC/IO/Exception.hs
index 5f8a1ca024a1f8433aa631f75c88ea4a297baa0c..a04a19f5a263ecf87c28780cdcec62781a82eec3 100644
--- a/libraries/base/GHC/IO/Exception.hs
+++ b/libraries/base/GHC/IO/Exception.hs
@@ -16,6 +16,11 @@
 --
 -- IO-related Exception types and functions
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -----------------------------------------------------------------------------
 
 module GHC.IO.Exception (
diff --git a/libraries/base/GHC/IO/Handle/Internals.hs b/libraries/base/GHC/IO/Handle/Internals.hs
index cd1f6a35ef76a9b5b52d7311d4327bf9bccdec0c..33d825597063a6c39bc2686e5b3db49d94df6118 100644
--- a/libraries/base/GHC/IO/Handle/Internals.hs
+++ b/libraries/base/GHC/IO/Handle/Internals.hs
@@ -24,6 +24,11 @@
 -- of the operations defined here are independent of the underlying
 -- device.
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -----------------------------------------------------------------------------
 
 module GHC.IO.Handle.Internals (
diff --git a/libraries/base/GHC/IO/Handle/Text.hs b/libraries/base/GHC/IO/Handle/Text.hs
index 60c2aa7c10c93307d63adf7c7352919e8c778ade..25552f9be20c68ab11a02f6151530cefee2e4124 100644
--- a/libraries/base/GHC/IO/Handle/Text.hs
+++ b/libraries/base/GHC/IO/Handle/Text.hs
@@ -22,6 +22,11 @@
 --
 -- String I\/O functions
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -----------------------------------------------------------------------------
 
 module GHC.IO.Handle.Text (
diff --git a/libraries/base/GHC/IO/Handle/Types.hs b/libraries/base/GHC/IO/Handle/Types.hs
index 372dfbf19c6443b1cc9eabdf0c2530df062996a0..a095a57039e9da28875312a0d5b4a663e6397632 100644
--- a/libraries/base/GHC/IO/Handle/Types.hs
+++ b/libraries/base/GHC/IO/Handle/Types.hs
@@ -18,6 +18,11 @@
 --
 -- Basic types for the implementation of IO Handles.
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -----------------------------------------------------------------------------
 
 module GHC.IO.Handle.Types (
diff --git a/libraries/base/GHC/IO/SubSystem.hs b/libraries/base/GHC/IO/SubSystem.hs
index a6f06e60e9cd56832a7ead20548c66231476833b..066102741f66e05b5aca24336344d4da5c940a03 100644
--- a/libraries/base/GHC/IO/SubSystem.hs
+++ b/libraries/base/GHC/IO/SubSystem.hs
@@ -12,9 +12,14 @@
 -- Stability   :  internal
 -- Portability :  non-portable
 --
--- The SubSystem control interface.  These methods can be used to disambiguate
+-- The 'IoSubSystem' control interface.  These methods can be used to disambiguate
 -- between the two operations.
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -----------------------------------------------------------------------------
 
 module GHC.IO.SubSystem (
diff --git a/libraries/base/GHC/IOPort.hs b/libraries/base/GHC/IOPort.hs
index 101f9b34fafa5ebbe71d1b50cdd6c751a05c71c5..8d5525d49b8bae188b956de4a18526152981700c 100644
--- a/libraries/base/GHC/IOPort.hs
+++ b/libraries/base/GHC/IOPort.hs
@@ -13,7 +13,13 @@
 -- Stability   :  internal
 -- Portability :  non-portable (GHC Extensions)
 --
--- The IOPort type. This is a facility used by the Windows IO subsystem.
+-- The 'IOPort' type. This is a facility used by the Windows IO subsystem.
+--
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -- We have strict rules with an I/O Port:
 -- * writing more than once is an error
 -- * reading more than once is an error
diff --git a/libraries/base/GHC/InfoProv.hsc b/libraries/base/GHC/InfoProv.hsc
index 86e2ae8a14bcd61d09f03661b3441c59535ee876..2586a705867c74fc3b98c30ac73cfe1243ce13a4 100644
--- a/libraries/base/GHC/InfoProv.hsc
+++ b/libraries/base/GHC/InfoProv.hsc
@@ -15,6 +15,11 @@
 --
 -- Access to GHC's info-table provenance metadata.
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -- @since 4.18.0.0
 -----------------------------------------------------------------------------
 
diff --git a/libraries/base/GHC/RTS/Flags.hsc b/libraries/base/GHC/RTS/Flags.hsc
index 138033758bea514f5bbc334ad5dc77157dbe828a..847c6c13949732730bf1af01a07de230acc13317 100644
--- a/libraries/base/GHC/RTS/Flags.hsc
+++ b/libraries/base/GHC/RTS/Flags.hsc
@@ -1,7 +1,19 @@
 {-# LANGUAGE DeriveGeneric #-}
 {-# LANGUAGE NoImplicitPrelude #-}
 
--- | Accessors to GHC RTS flags.
+-- |
+-- Module      :  GHC.RTS.Flags
+-- Copyright   :  (c) The University of Glasgow, 1994-2000
+-- License     :  see libraries/base/LICENSE
+--
+-- Maintainer  :  cvs-ghc@haskell.org
+-- Stability   :  internal
+-- Portability :  non-portable (GHC extensions)
+--
+-- /The API of this module is unstable and is tightly coupled to GHC's internals./
+-- If depend on it, make sure to use a tight upper bound, e.g., @base < 4.X@ rather
+-- than @base < 5@, because the interface can change rapidly without much warning.
+--
 -- Descriptions of flags can be seen in
 -- <https://www.haskell.org/ghc/docs/latest/html/users_guide/runtime_control.html GHC User's Guide>,
 -- or by running RTS help message using @+RTS --help@.
diff --git a/libraries/base/GHC/Stack/Types.hs b/libraries/base/GHC/Stack/Types.hs
index 8c729a693fe8090ca795be631855c66b6d843082..f21e096f799066bda6925dbbd8fad439a97c9f95 100644
--- a/libraries/base/GHC/Stack/Types.hs
+++ b/libraries/base/GHC/Stack/Types.hs
@@ -19,10 +19,15 @@
 -- Stability   :  internal
 -- Portability :  non-portable (GHC Extensions)
 --
--- type definitions for implicit call-stacks.
+-- Type definitions for implicit call-stacks.
 -- Use "GHC.Stack" from the base package instead of importing this
 -- module directly.
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -----------------------------------------------------------------------------
 
 module GHC.Stack.Types (
diff --git a/libraries/base/GHC/Stats.hsc b/libraries/base/GHC/Stats.hsc
index 27ac5ca8c658afecf199f4d2aced2b79fdfc8373..85eaa25d5b27843a5feecebbcbc1a8a75d2a8897 100644
--- a/libraries/base/GHC/Stats.hsc
+++ b/libraries/base/GHC/Stats.hsc
@@ -5,11 +5,22 @@
 {-# OPTIONS_GHC -funbox-strict-fields #-}
 
 -----------------------------------------------------------------------------
--- | This module provides access to internal garbage collection and
+-- |
+-- Module      :  GHC.RTS.Flags
+-- Copyright   :  (c) The University of Glasgow, 1994-2000
+-- License     :  see libraries/base/LICENSE
+--
+-- Maintainer  :  cvs-ghc@haskell.org
+-- Stability   :  internal
+-- Portability :  non-portable (GHC extensions)
+--
+-- This module provides access to internal garbage collection and
 -- memory usage statistics.  These statistics are not available unless
 -- a program is run with the @-T@ RTS flag.
 --
--- This module is GHC-only and should not be considered portable.
+-- /The API of this module is unstable and is tightly coupled to GHC's internals./
+-- If depend on it, make sure to use a tight upper bound, e.g., @base < 4.X@ rather
+-- than @base < 5@, because the interface can change rapidly without much warning.
 --
 -- @since 4.5.0.0
 -----------------------------------------------------------------------------
diff --git a/libraries/base/GHC/TopHandler.hs b/libraries/base/GHC/TopHandler.hs
index e3206517f224d06b9566970388518b1fe6003473..5a0abd0d1752d9a39ee6b85e3f4c47c9641184d9 100644
--- a/libraries/base/GHC/TopHandler.hs
+++ b/libraries/base/GHC/TopHandler.hs
@@ -19,6 +19,11 @@
 -- Support for catching exceptions raised during top-level computations
 -- (e.g. @Main.main@, 'Control.Concurrent.forkIO', and foreign exports)
 --
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -----------------------------------------------------------------------------
 
 module GHC.TopHandler (
diff --git a/libraries/base/GHC/TypeLits/Internal.hs b/libraries/base/GHC/TypeLits/Internal.hs
index c2bb3327e53d7a495bf0c47497279fa1abfa897c..06b4042aa21e11b5d7da5c5581ff471f03b3f5a8 100644
--- a/libraries/base/GHC/TypeLits/Internal.hs
+++ b/libraries/base/GHC/TypeLits/Internal.hs
@@ -4,18 +4,29 @@
 {-# LANGUAGE NoImplicitPrelude #-}
 {-# OPTIONS_HADDOCK not-home #-}
 
-{-|
-DO NOT USE THIS MODULE.  Use "GHC.TypeLits" instead.
-
-This module is internal-only and was exposed by accident.  It may be
-removed without warning in a future version.
-
-(The technical reason for this module's existence is that it is needed
-to prevent module cycles while still allowing these identifiers to be
-imported in 'Data.Type.Ord'.)
-
-@since 4.16.0.0
--}
+-- |
+-- Module      :  GHC.TypeLits.Internal
+-- Copyright   :  (c) The University of Glasgow, 1994-2000
+-- License     :  see libraries/base/LICENSE
+--
+-- Maintainer  :  cvs-ghc@haskell.org
+-- Stability   :  internal
+-- Portability :  non-portable (GHC extensions)
+--
+-- __Do not use this module.__  Use "GHC.TypeLits" instead.
+--
+-- This module is internal-only and was exposed by accident.  It may be
+-- removed without warning in a future version.
+--
+-- /The API of this module is unstable and is tightly coupled to GHC's internals./
+-- If depend on it, make sure to use a tight upper bound, e.g., @base < 4.X@ rather
+-- than @base < 5@, because the interface can change rapidly without much warning.
+--
+-- The technical reason for this module's existence is that it is needed
+-- to prevent module cycles while still allowing these identifiers to be
+-- imported in "Data.Type.Ord".
+--
+-- @since 4.16.0.0
 
 module GHC.TypeLits.Internal
   ( Symbol
diff --git a/libraries/base/GHC/TypeNats/Internal.hs b/libraries/base/GHC/TypeNats/Internal.hs
index b46d53603afebd2cff77847f6c8f69a495396030..ec85fd49c2c30966dc17e143d0b8e1bb1e46925e 100644
--- a/libraries/base/GHC/TypeNats/Internal.hs
+++ b/libraries/base/GHC/TypeNats/Internal.hs
@@ -4,18 +4,28 @@
 {-# LANGUAGE NoImplicitPrelude #-}
 {-# OPTIONS_HADDOCK not-home #-}
 
-{-|
-DO NOT USE THIS MODULE.  Use "GHC.TypeNats" instead.
-
-This module is internal-only and was exposed by accident.  It may be
-removed without warning in a future version.
-
-(The technical reason for this module's existence is that it is needed
-to prevent module cycles while still allowing these identifiers to be
-imported in 'Data.Type.Ord'.)
-
-@since 4.16.0.0
--}
+-- Module      :  GHC.TypeNats.Internal
+-- Copyright   :  (c) The University of Glasgow, 1994-2000
+-- License     :  see libraries/base/LICENSE
+--
+-- Maintainer  :  cvs-ghc@haskell.org
+-- Stability   :  internal
+-- Portability :  non-portable (GHC extensions)
+--
+-- __Do not use this module.__  Use "GHC.TypeNats" instead.
+--
+-- This module is internal-only and was exposed by accident.  It may be
+-- removed without warning in a future version.
+--
+-- /The API of this module is unstable and is tightly coupled to GHC's internals./
+-- If depend on it, make sure to use a tight upper bound, e.g., @base < 4.X@ rather
+-- than @base < 5@, because the interface can change rapidly without much warning.
+--
+-- The technical reason for this module's existence is that it is needed
+-- to prevent module cycles while still allowing these identifiers to be
+-- imported in "Data.Type.Ord".
+--
+-- @since 4.16.0.0
 
 module GHC.TypeNats.Internal
   ( Natural
diff --git a/libraries/base/System/Posix/Internals.hs b/libraries/base/System/Posix/Internals.hs
index 70b8ca0a498dea15a8434016e33e65678fb61c62..37ec373c203b213bcc69055d1513402ec117e01c 100644
--- a/libraries/base/System/Posix/Internals.hs
+++ b/libraries/base/System/Posix/Internals.hs
@@ -17,10 +17,16 @@
 -- Portability :  non-portable (requires POSIX)
 --
 -- POSIX support layer for the standard libraries.
+--
+-- /The API of this module is unstable and not meant to be consumed by the general public./
+-- If you absolutely must depend on it, make sure to use a tight upper
+-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
+-- change rapidly without much warning.
+--
 -- This library is built on *every* platform, including Win32.
 --
--- Non-posix compliant in order to support the following features:
---      * S_ISSOCK (no sockets in POSIX)
+-- Non-POSIX compliant in order to support the following features:
+--  * S_ISSOCK (no sockets in POSIX)
 --
 -----------------------------------------------------------------------------