diff --git a/Control/DeepSeq.hs b/Control/DeepSeq.hs
--- a/Control/DeepSeq.hs
+++ b/Control/DeepSeq.hs
@@ -87,6 +87,7 @@
 
 import Control.Applicative
 import Control.Concurrent ( ThreadId, MVar )
+import Control.Exception ( MaskingState(..) )
 import Data.IORef
 import Data.STRef
 import Data.Int
@@ -97,6 +98,7 @@
 import Data.Fixed
 import Data.Version
 import Data.Monoid as Mon
+import Data.Typeable ( TypeRep, TyCon )
 import Data.Unique ( Unique )
 import Foreign.Ptr
 import Foreign.C.Types
@@ -123,9 +125,11 @@
 
 #if MIN_VERSION_base(4,8,0)
 import Data.Functor.Identity ( Identity(..) )
-import Data.Typeable ( TypeRep, TyCon, rnfTypeRep, rnfTyCon )
+import Data.Typeable ( rnfTypeRep, rnfTyCon )
 import Data.Void ( Void, absurd )
 import Numeric.Natural ( Natural )
+#else
+import Data.Typeable ( typeRepTyCon, typeRepArgs, tyConPackage, tyConModule, tyConName )
 #endif
 
 #if MIN_VERSION_base(4,9,0)
@@ -428,6 +432,9 @@
 instance NFData Word32   where rnf = rwhnf
 instance NFData Word64   where rnf = rwhnf
 
+-- | @since 1.4.4.0
+instance NFData MaskingState where rnf = rwhnf
+
 #if MIN_VERSION_base(4,7,0)
 -- |@since 1.4.0.0
 instance NFData (Proxy a) where rnf Proxy = ()
@@ -650,17 +657,31 @@
     rnf = rwhnf -- assumes `newtype Unique = Unique Integer`
 
 #if MIN_VERSION_base(4,8,0)
--- | __NOTE__: Only defined for @base-4.8.0.0@ and later
+-- | __NOTE__: Prior to @deepseq-1.4.4.0@ this instance was only defined for @base-4.8.0.0@ and later.
 --
 -- @since 1.4.0.0
 instance NFData TypeRep where
     rnf tyrep = rnfTypeRep tyrep
 
--- | __NOTE__: Only defined for @base-4.8.0.0@ and later
+-- | __NOTE__: Prior to @deepseq-1.4.4.0@ this instance was only defined for @base-4.8.0.0@ and later.
 --
 -- @since 1.4.0.0
 instance NFData TyCon where
     rnf tycon = rnfTyCon tycon
+#else
+-- | __NOTE__: Prior to @deepseq-1.4.4.0@ this instance was only defined for @base-4.8.0.0@ and later.
+--
+-- @since 1.4.0.0
+instance NFData TypeRep where
+    rnf tr = rnf (typeRepTyCon tr) `seq` rnf (typeRepArgs tr)
+
+-- | __NOTE__: Prior to @deepseq-1.4.4.0@ this instance was only defined for @base-4.8.0.0@ and later.
+--
+-- @since 1.4.0.0
+instance NFData TyCon where
+    rnf tc = rnf (tyConPackage tc) `seq`
+             rnf (tyConModule  tc) `seq`
+             rnf (tyConName    tc)
 #endif
 
 -- | __NOTE__: Only strict in the reference and not the referenced value.
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,16 @@
 # Changelog for [`deepseq` package](http://hackage.haskell.org/package/deepseq)
 
+## 1.4.4.0 *Sep 2018*
+
+  * Bundled with GHC 8.6.1
+
+  * Add `NFData` instance for `MaskingState`
+    ([#38](https://github.com/haskell/deepseq/pull/38))
+
+  * Define the `NFData` instances for `TypeRep` and `TyCon` on all supported
+    versions of `base`, not just 4.8 and later
+    ([#40](https://github.com/haskell/deepseq/pull/40))
+
 ## 1.4.3.0 *Apr 2017*
 
   * Bundled with GHC 8.2.1
diff --git a/deepseq.cabal b/deepseq.cabal
--- a/deepseq.cabal
+++ b/deepseq.cabal
@@ -1,6 +1,8 @@
+cabal-version:  1.12
 name:           deepseq
-version:        1.4.3.0
+version:        1.4.4.0
 -- NOTE: Don't forget to update ./changelog.md
+
 license:        BSD3
 license-file:   LICENSE
 maintainer:     libraries@haskell.org
@@ -19,10 +21,13 @@
     \"deep\" version of 'seq'. It is implemented on top of an 'NFData'
     typeclass (\"Normal Form Data\", data structures with no unevaluated
     components) which defines strategies for fully evaluating different
-    data types.
+    data types. See module documentation in "Control.DeepSeq" for more
+    details.
+
 build-type:     Simple
-cabal-version:  >=1.10
-tested-with:    GHC==8.2.1,
+tested-with:    GHC==8.6.1,
+                GHC==8.4.3, GHC==8.4.2, GHC==8.4.1,
+                GHC==8.2.2, GHC==8.2.1,
                 GHC==8.0.2, GHC==8.0.1,
                 GHC==7.10.3, GHC==7.10.2, GHC==7.10.1,
                 GHC==7.8.4, GHC==7.8.3, GHC==7.8.2, GHC==7.8.1,
@@ -40,13 +45,10 @@
   other-extensions:
     BangPatterns
     CPP
-
-  -- Enable Generics-backed DefaultSignatures for `rnf`
-  other-extensions:
     DefaultSignatures
-    GADTs
     FlexibleContexts
     FlexibleInstances
+    GADTs
     MultiParamTypeClasses
     Safe
     TypeOperators
@@ -61,7 +63,7 @@
   if impl(ghc>=7.8)
     other-extensions: EmptyCase
 
-  build-depends: base       >= 4.5 && < 4.11,
+  build-depends: base       >= 4.5 && < 4.13,
                  array      >= 0.4 && < 0.6
   ghc-options: -Wall
 
