# Changelog for [`deepseq` package](http://hackage.haskell.org/package/deepseq)

## Upcoming



## 1.5.0.0

  * Add quantified superclasses to NFData(1,2)
    ([#88](https://github.com/haskell/deepseq/issues/88))
  * Alter superclasses for Data.Functor.{Sum, Product}
    ([#95])(https://github.com/haskell/deepseq/pull/95)
  * Drop support for GHC < 8.6
    ([#94](https://github.com/haskell/deepseq/pull/94))
  * List fusion in `instance NFData [a]` reduces allocations
    ([#99](https://github.com/haskell/deepseq/pull/99))

## 1.4.8.1

  * Adapt the rename of the Solo constructor to MkSolo
    ([#87](https://github.com/haskell/deepseq/pull/87))
  * Add instances for the indexed `TypeRep`, along with `Module`.
    ([#83](https://github.com/haskell/deepseq/pull/83))

## 1.4.8.0

  * Add `NFData` instance for `MutableByteArray`
    ([#84](https://github.com/haskell/deepseq/pull/84))
  * Change RnfArgs to be a data family
    ([#85](https://github.com/haskell/deepseq/pull/85))

## 1.4.7.0

  * Add instances for `Solo` (GHC-9)
    ([#69](https://github.com/haskell/deepseq/pull/69))
  * Add once again `infixr 0 deepseq`
    ([#56](https://github.com/haskell/deepseq/pull/56), [#74](https://github.com/haskell/deepseq/issues/74))
  * Add `NFData` instance for `ByteArray`
    ([#65](https://github.com/haskell/deepseq/pull/65))
  * Drop support for GHC 7 to simplify CPP
    ([#75](https://github.com/haskell/deepseq/pull/75))

## 1.4.6.1

  * Revert `infixr 0 deepseq`; this does not appear in the version of `deepseq` pinned to GHC 9.2.1

## 1.4.6.0

  * Bundled with GHC 9.2.1
  * Remove instances for Data.Semigroup.Option for GHC >= 9.2
    ([#62](https://github.com/haskell/deepseq/pull/62))
  * Set the `infixr 0 deepseq` to be consistent with `seq`
    ([#56](https://github.com/haskell/deepseq/pull/56))

## 1.4.5.0

  * Add `GNFData` for URec
    This will enable deriving NFData instances for unboxed types

## 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

  * Drop support for GHC 7.0 & GHC 7.2

  * Changed strictness behavior of generic `NFData` instances for
    constructor-less data types. Before, a generic `rnf`
    implementation would always `error` on a data type with no
    constructors. Now, it will force the argument, so if the argument
    is a diverging computation, a generic `rnf` implementation will
    actually trigger the diverging computation.
    ([#19](https://github.com/haskell/deepseq/issues/19))

  * Add new `rwhnf` function defined as `rwhnf !_ = ()`
    ([#3](https://github.com/haskell/deepseq/issues/3))

  * Add `(<$!!>) :: (Monad m, NFData b) => (a -> b) -> m a -> m b`
    ([#13](https://github.com/haskell/deepseq/issues/13))

  * Add `NFData1` and `NFData2` type classes
    ([#8](https://github.com/haskell/deepseq/issues/8))

  * Add `NFData` instance for `Down` for `base` versions prior to
    `base-4.6.0` which didn't yet export it via `Data.Ord`
    ([#28](https://github.com/haskell/deepseq/pull/28))

  * Add `NFData` instance for `Foreign.C.Types.CBool`
    ([#33](https://github.com/haskell/deepseq/pull/33))

  * Add `NFData` instance for `Ordering`
    ([#25](https://github.com/haskell/deepseq/pull/25))

  * Add `NFData1` and `NFData` instances for `Data.Functor.{Compose,Sum,Product}`
    ([#30](https://github.com/haskell/deepseq/pull/30))

  * Add `NFData`, `NFData1`, and `NFData2` instances for `(:~:)` and `(:~~:)`
    from `Data.Type.Equality`
    ([#31](https://github.com/haskell/deepseq/issues/31))

## 1.4.2.0  *Apr 2016*

  * Bundled with GHC 8.0.1

  * New instances for types provided by `semigroups` prior to
    `base-4.9` (i.e. `NonEmpty`, `Min`, `Max`, `Arg`,
    `Semigroup.First`, `Semigroup.Last`, `WrappedMonoid`, and
    `Option`) ([#11](https://github.com/haskell/deepseq/issues/11))

  * New instances for `Ptr` and `FunPtr`
    ([#10](https://github.com/haskell/deepseq/pull/10))

  * New instances for `IORef`, `STRef`, and `MVar`
    ([#6](https://github.com/haskell/deepseq/issues/6))

  * New instance for `ExitCode`
    ([#4](https://github.com/haskell/deepseq/issues/4))

  * New instances for `CallStack` and `SrcLoc`

  * Make `NFData (Proxy a)` instance poly-kinded

## 1.4.1.2  *Aug 2015*

  * Avoid the broken combination of GHC-7.2 with `array>=0.4`
    ([#7](https://github.com/haskell/deepseq/pull/7))

## 1.4.1.1  *Mar 2015*

  * Bundled with GHC 7.10.1
  * Drop redundant `ghc-prim` dependency

## 1.4.1.0  *Mar 2015*

  * Drop redundant constraints from a few `NFData` instances (if
    possible for a given `base` version)

## 1.4.0.0  *Dec 2014*

  * Switch to Generics based `DefaultSignature` `rnf` method
    implementation (based on code from `deepseq-generics`)

    **Compatibility Note**: if you need the exact default-method
    semantics of `deepseq` prior to 1.4, replace occurences of

        instance NFData XYZ

    by

        instance NFData XYZ where rnf x = seq x ()

  * New `NFData` instances for `base` types:

     - `Control.Applicative.Const`
     - `Control.Applicative.ZipList`
     - `Control.Concurrent.ThreadId`
     - `Data.Functor.Identity.Identity`
     - `Data.Monoid.{Dual,First,Last,Any,All,Sum,Product}`
     - `Data.Ord.Down`
     - `Data.Proxy.Proxy`
     - `Data.Typeable.Internal.TyCon`
     - `Data.Typeable.Internal.TypeRep`
     - `Data.Unique.Unique`
     - `Data.Void.Void`
     - `GHC.Fingerprint.Type.Fingerprint`
     - `Numeric.Natural.Natural`
     - `System.Mem.StableName.StableName`
     - `Foreign.C.Types.C*`

## 1.3.0.2  *Nov 2013*

  * Bundled with GHC 7.8.1
  * Update package description to Cabal 1.10 format
  * Add support for GHC 7.8
  * Drop support for GHCs older than GHC 7.0.1
  * Add `/since: .../` annotations to Haddock comments
  * Add changelog

## 1.3.0.1  *Sep 2012*

  * No changes

## 1.3.0.0  *Feb 2012*

  * Add instances for `Fixed`, `a->b` and `Version`

## 1.2.0.1  *Sep 2011*

  * Disable SafeHaskell for GHC 7.2

## 1.2.0.0  *Sep 2011*

  * New function `force`
  * New operator `$!!`
  * Add SafeHaskell support
  * Dropped dependency on containers

## 1.1.0.2  *Nov 2010*

  * Improve Haddock documentation

## 1.1.0.1  *Oct 2010*

  * Enable support for containers-0.4.x

## 1.1.0.0  *Nov 2009*

  * Major rewrite

## 1.0.0.0  *Nov 2009*

  * Initial release
