BSD-3-Clause licensed by Michal J. Gajda
Maintained by
This version can be pinned in stack with:homplexity-,3549

Module documentation for

There are no documented modules for this package.


Aims to assess complexity and quality of Haskell code by measuring relative length of declarations, their depth, and code-to-comment ratio.

For parsing it uses haskell-src-exts, and cppHs.

Build Status Hackage Hackage Dependencies

Official releases are on Hackage


After installing with cabal install homplexity, you might run it with filenames or directories with your Haskell source

    homplexity Main.hs src/ 

Patches and suggestions are welcome.

You may run homplexity --help to see options.

How does it work?

Homplexity is based on the idea of Metrics that are applied to various CodeFragment types extracted automatically from parsed source. Each metric is then assessed whether it crosses any thresholds, and depending on them the severity of the message is chosen.

To see all metric values, set the warning --severity to INFO.

Diagram of concepts Legend of the diagram


Changelog  May 2016

    * Updated bounds again.  May 2016

    * Updated deps.  Feb 2016

    * Updated bounds for GHC 8.0.  Jun 2015

    * Thanks to Mikolaj Konarski for fixing an embarrassing eternal loop due to biplate quirk.  Jun 2015

    * Compatible with GHC 7.8.  Jun 2015

    * Corrected embarassing missing module.
    * Better documentation, cleanup.  Jun 2015

    * Added number of arguments, and constructor depth.  Jun 2015

    * Configurable thresholds.  Jun 2015

    * First release on Hackage.  Jun 2015

    * First successful Travis builds. (Took a while du  to changes in Happy,
    that prevented haskell-src-exts from building.  Apr 2015

    * Put source code on GitHub.