The generic-deepseq package

[ Tags: bsd3, control, generics, library ] [ Propose Tags ]

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

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

Changes in version

Changes in version


Dependencies base (>=4.4 && <5), ghc-prim (>=0.2) [details]
License BSD3
Copyright 2012, Maxime Henrion
Author Maxime Henrion
Maintainer Maxime Henrion <>
Category Control, Generics
Bug tracker
Source repo head: hg clone
Uploaded Tue Feb 28 20:53:40 UTC 2012 by MaximeHenrion
Updated Sat May 9 12:17:48 UTC 2015 by AdamBergmark to revision 1   [What is this?]
Distributions NixOS:
Downloads 1974 total (8 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI




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'.

Maintainer's Corner

For package maintainers and hackage trustees