@hackage generic-deepseq1.0.0.0

Generic deep evaluation of data structures

This package provides a deepseq function analogous to seq, except that it traverses data structures deeply, 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