ANN: deepseq-bounded, seqaid, leaky

Andrew Seniuk rasfar at
Fri Dec 19 13:07:33 UTC 2014

This trio of related packages explores strictness control in a variety of

deepseq-bounded provides classes and generic functions to artificially
force evaluation, to extents controlled by static or dynamic configuration.

seqaid puts that into practise, providing a GHC plugin to auto-instrument
your package with a strictness harness, which is dynamically optimisable
during runtime.  This is supported directly in the GHC compilation
pipeline, without requiring (or performing!) any edits to your sources.

leaky is a minimal, prototypic executable that leaks space under current
state-of-the-art compilation (GHC 7.8.3 -O2, at the present time).




Reddit discussion for the three together:

Easiest way to try them all, is to install seqaid and run the demo:

  cabal install seqaid
  seqaid demo

This tests seqaid on a local copy of the leaky source package.

It turned out to be routine to extend deepseq-bounded and seqaid to
dynamically configurable parallelisation (paraid?).  Many other wrappers
could be explored, too!  Maybe seqaid should be renamed to koolaid or

It's a pretty complicated system, and just first release, so there's bound
to be lots of problems.  I've not set up a bug tracker, but will maintain a
casual list of bugs and feature requests at

and will set up a proper tracker if there's interest.

Any isssues (or comments), I'm here, or on the reddit discussion (or email).

Andrew Seniuk
rasfar on #haskell
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the ghc-devs mailing list