Computer-Aided Program Development Group

Sloth

The tool "Sloth" is written in the lazy, functional programming language Haskell. It can be used to get hints whether a Haskell function is unnecessarily strict. Sloth provides a function called strictCheck that takes a function and searches for arguments that show that the considered function is unnecessarily strict.

There are two papers that describe parts of the basics of Sloth. The fundamental approach is summarized in Sloth - A Tool for Checking Minimal-Strictness, which has been presented at PADL 2011. Details about testing polymorphic functions can be found in Minimally Strict Polymorphic Functions, which has been presented at PPDP 2011.

There is a short explanation, whose source lhs-file is also contained in the hackage package, with some examples of the usage of Sloth. Sloth is available via hackage.