# Changelog for [`deepseq` package](http://hackage.haskell.org/package/deepseq) ## 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