generic-deepseq: Generic deep evaluation of data structures
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 2.0.0.0:
Vastly improved performance. As a consequence of these changes, the member function of the DeepSeq class is now
rnf
, instead ofdeepseq
.New instances for functions, Ratio and Complex types.
Changes in version 2.0.1.0:
Fix the U1 and V1 instances.
Changes in version 2.0.1.1:
No functional changes, updated to correct the URLs of the repository and the issue tracker.
Versions [faq] | 1.0.0.0, 2.0.0.0, 2.0.1.0, 2.0.1.1 |
---|---|
Dependencies | base (>=4.4 && <5), ghc-prim (>=0.2) [details] |
License | BSD-3-Clause |
Copyright | 2012, Maxime Henrion |
Author | Maxime Henrion |
Maintainer | Maxime Henrion <mhenrion@gmail.com> |
Revised | Revision 1 made by AdamBergmark at 2015-05-09T12:17:48Z |
Category | Control, Generics |
Bug tracker | http://bitbucket.org/mux/generic-deepseq/issues/ |
Source repo | head: hg clone http://bitbucket.org/mux/generic-deepseq/ |
Uploaded | by MaximeHenrion at 2012-02-28T20:53:40Z |
Distributions | NixOS:2.0.1.1 |
Downloads | 3355 total (4 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |
Downloads
- generic-deepseq-2.0.1.1.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.