diff --git a/libraries/base/GHC/IO/Exception.hs b/libraries/base/GHC/IO/Exception.hs
index 020bc067dfcf110b912d9f591caf4a6492e46c7b..cb53432d9e3e7dc6e4220bd7033491fce980d2ff 100644
--- a/libraries/base/GHC/IO/Exception.hs
+++ b/libraries/base/GHC/IO/Exception.hs
@@ -269,12 +269,15 @@ instance Show ArrayException where
         . (if not (null s) then showString ": " . showString s
                            else id)
 
--- | @since TODO
+-- | The exception thrown when an infinite cycle is detected in 'fixIO'.
+--
+-- @since 4.11.0.0
 data FixIOException = FixIOException
 
--- | @since TODO
+-- | @since 4.11.0.0
 instance Exception FixIOException
 
+-- | @since 4.11.0.0
 instance Show FixIOException where
   showsPrec _ FixIOException = showString "cyclic evaluation in fixIO"
 
diff --git a/libraries/base/changelog.md b/libraries/base/changelog.md
index 39771170c7812beeadfdea5844fba5a57b5d33bb..cb9519c509d1df1cd05c78045c1c608888e1df99 100644
--- a/libraries/base/changelog.md
+++ b/libraries/base/changelog.md
@@ -85,6 +85,10 @@
   * Deprecated STM invariant checking primitives (`checkInv`, `always`, and
     `alwaysSucceeds`) in `GHC.Conc.Sync` (#14324).
 
+  * Add a `FixIOException` data type to `Control.Exception.Base`, and change
+    `fixIO` to throw that instead of a `BlockedIndefinitelyOnMVar` exception
+    (#14356).
+
 ## 4.10.1.0 *November 2017*
   * Bundled with GHC 8.2.2