diff --git a/GHC/IO/Exception.hs b/GHC/IO/Exception.hs
--- a/GHC/IO/Exception.hs
+++ b/GHC/IO/Exception.hs
@@ -269,12 +269,15 @@
         . (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/GHC/Read.hs b/GHC/Read.hs
--- a/GHC/Read.hs
+++ b/GHC/Read.hs
@@ -37,6 +37,7 @@
   , readListDefault, readListPrecDefault
   , readNumber
   , readField
+  , readFieldHash
   , readSymField
 
   -- Temporary
@@ -373,6 +374,22 @@
         expectP (L.Punc "=")
         readVal
 {-# NOINLINE readField #-}
+
+-- See Note [Why readField]
+
+-- | 'Read' parser for a record field, of the form @fieldName#=value@. That is,
+-- an alphanumeric identifier @fieldName@ followed by the symbol @#@. The
+-- second argument is a parser for the field value.
+--
+-- Note that 'readField' does not suffice for this purpose due to
+-- <https://ghc.haskell.org/trac/ghc/ticket/5041 Trac #5041>.
+readFieldHash :: String -> ReadPrec a -> ReadPrec a
+readFieldHash fieldName readVal = do
+        expectP (L.Ident fieldName)
+        expectP (L.Symbol "#")
+        expectP (L.Punc "=")
+        readVal
+{-# NOINLINE readFieldHash #-}
 
 -- See Note [Why readField]
 
diff --git a/GHC/Show.hs b/GHC/Show.hs
--- a/GHC/Show.hs
+++ b/GHC/Show.hs
@@ -208,7 +208,7 @@
 
 -- | @since 4.9.0.0
 instance Show TrName where
-  showsPrec _ (TrNameS s) = showString (unpackCString# s)
+  showsPrec _ (TrNameS s) = showString (unpackCStringUtf8# s)
   showsPrec _ (TrNameD s) = showString s
 
 -- | @since 4.9.0.0
diff --git a/base.cabal b/base.cabal
--- a/base.cabal
+++ b/base.cabal
@@ -1,6 +1,6 @@
 cabal-version:  2.2
 name:           base
-version:        4.11.0.0
+version:        4.11.1.0
 
 license:        BSD-3-Clause
 license-file:   LICENSE
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,7 +1,13 @@
 # Changelog for [`base` package](http://hackage.haskell.org/package/base)
 
 
-## 4.11.0.0 *TBA*
+## 4.11.1.0 *April 2018*
+  * Bundled with GHC 8.4.2
+
+  * Add the `readFieldHash` function to `GHC.Read` which behaves like
+    `readField`, but for a field that ends with a `#` symbol (#14918).
+
+## 4.11.0.0 *March 2018*
   * Bundled with GHC 8.4.1
 
   * `System.IO.openTempFile` is now thread-safe on Windows.
@@ -78,6 +84,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
