<div dir="ltr">This trio of related packages explores strictness control in a variety of ways.<br><br>deepseq-bounded provides classes and generic functions to artificially force evaluation, to extents controlled by static or dynamic configuration.<br><br>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.<br><br>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).<br><br>deepseq-bounded<br>  hackage: <a href="https://hackage.haskell.org/package/deepseq-bounded">https://hackage.haskell.org/package/deepseq-bounded</a><br>  homepage: <a href="http://www.fremissant.net/deepseq-bounded">http://www.fremissant.net/deepseq-bounded</a><br><br>seqaid<br>  hackage: <a href="https://hackage.haskell.org/package/seqaid">https://hackage.haskell.org/package/seqaid</a><br>  homepage: <a href="http://www.fremissant.net/seqaid">http://www.fremissant.net/seqaid</a><br><br>leaky<br>  hackage: <a href="https://hackage.haskell.org/package/leaky">https://hackage.haskell.org/package/leaky</a><br>  homepage: <a href="http://www.fremissant.net/leaky">http://www.fremissant.net/leaky</a><br><br>Reddit discussion for the three together:<br>  <a href="http://www.reddit.com/r/haskell/comments/2ps8f5/ann_deepseqbounded_seqaid_leaky/">http://www.reddit.com/r/haskell/comments/2ps8f5/ann_deepseqbounded_seqaid_leaky/</a><br><br>Easiest way to try them all, is to install seqaid and run the demo:<br><br>  cabal install seqaid<br>  seqaid demo<br><br>This tests seqaid on a local copy of the leaky source package.<br><br>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 something...<br><br>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<br><br>  <a href="http://www.fremissant.net/seqaid/trac">http://www.fremissant.net/seqaid/trac</a><br><br>and will set up a proper tracker if there's interest.<br><br>Any isssues (or comments), I'm here, or on the reddit discussion (or email).<br><br>Andrew Seniuk<br>rasfar on #haskell<br><br></div>