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