Utility to help managing Makefiles for Haskell projects, a cabal lint which can check the other-modules and build-deps sections in your cabal files, and a quick command that can show the direct package dependencies of a set of Haskell source files. See the README in the repo for more information: https://github.com/JakeWheat/package-o-tron.
Version 0.1.0.0

This program is meant as a tool for suggesting version change of libraries. It tries to match official Package Versioning Policy.
See http://www.haskell.org/haskellwiki/Package_versioning_policy for details.
This version works by inspecting new/removed exported modules or entities. It doesn't currently check the types of exported elements.
Typical invocation:
> package-vt module-ver-1.hs module-ver-2.hs
If you unpack modules with cabal unpack you can use the following form:
> # unpack modules
> cabal unpack package-1
> cabal unpack package-2
> package-vt module-1/module.cabal module-2/module.cabal
Version 0.1.3.3

O(n). Construct a new ByteString from a CString. The resulting ByteString is an immutable copy of the original CString, and is managed on the Haskell heap. The original CString must be null terminated.

O(n). Construct a new ByteString from a CStringLen. The resulting ByteString is an immutable copy of the original CStringLen. The ByteString is a normal Haskell value and will be managed on the Haskell heap.

This provides a library and command line tool for checking if the upper bounds in your package's dependency list excludes the newest package available. The code was originally available only as a web interface at http://packdeps.haskellers.com/, but is now available for standalone use as well.
The command line tool has an incredibly simple interface: simply pass it a list of cabal files, and it will tell you what dependencies- if any- are restricted.
Version 0.4.0.2

This simple CLI tool allows to find out which of the packages listed as build-depends in a Cabal package description file are redundant.
packunused works by taking advantage of GHC's -ddump-minimal-imports feature which creates .import files for each compiled module containing a minimal set of explicit import declarations. These .import files together with Cabal's generated package configuration meta-data is analyzed by packunused to detect potentially redundant package dependencies.
In order to use packunused you have to configure the package as usual. See the example session below:
> cabal clean
> rm *.imports
> cabal configure -O0 --disable-library-profiling
> cabal build --ghc-option=-ddump-minimal-imports
> packunused
The -O0 --disable-library-profiling options are just to speed up compilation. In some cases you might want to pass additional options to the configure step, such as --enable-benchmark or --enable-tests.
When run, packunused prints a report to standard output listing its findings for each component built. The following is an example for the packunused package itself, with a redundant dependency added for demonstration on purpose:
> detected package components
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
> - executable(s): packunused
> (component names suffixed with '*' are not configured to be built)
> executable(packunused)
> ~~~~~~~~~~~~~~~~~~~~~~
> The following package depencencies seem redundant:
> - criterion-0.6.2.0-9dd4d764629a47662168743b2dfda9bc
Version 0.1.0.1