generic-deepseq / generic-deepseq.cabal

Full commit
Name:		generic-deepseq
License-File:	LICENSE
License:	BSD3
Author:		Maxime Henrion
Copyright:	2012, Maxime Henrion
Maintainer:	Maxime Henrion <>
Category:	Control, Generics
Synopsis:	Generic deep evaluation of data structures
Build-Type:	Simple
Cabal-Version:	>= 1.6
Tested-with:	GHC ==7.4.1
  This package provides a 'deepseq' function analogous to 'seq', except that it
  traverses the entire data structure, evaluating it fully, and not just up to
  head normal form.
  Using lists as an example:
  > > [1,2,undefined] `seq` 3
  > 3
  Whereas with 'deepseq':
  > > [1,2,undefined] `deepseq` 3
  > *** Exception: Prelude.undefined
  Unlike the @deepseq@ package, this implementation is based on the
  "GHC.Generics" framework as found in GHC >= 7.2, so that it can generate
  instances automatically for any datatype that has a 'Generic' instance,
  without further code.
  > data MyType = MyType String Int (Maybe Double)
  >   deriving Generic
  > instance DeepSeq MyType
  Changes in version
  * Vastly improved performance. As a consequence of these changes, the member function of the DeepSeq class is now 'rnf', instead of 'deepseq'.
  * New instances for functions, Ratio and Complex types.
  Changes in version
  * Fix the U1 and V1 instances.
  Changes in version
  * No functional changes, updated to correct the URLs of the repository and the issue tracker.

Source-Repository head
  Type:			mercurial

  Build-Depends:	base >= 3 && < 5, ghc-prim >= 0.2
  Hs-Source-Dirs:	src
  Exposed-Modules:	Control.DeepSeq
  Extensions:		FlexibleContexts, TypeOperators
  GHC-Options:		-Wall -O2