If you have a bunch of packages that you want to compile or recompile,
then you need an order of compilation that meets the dependencies.
Given a number of cabal package files, cabal-sort reads all those files
and emits them topologically sorted according to their dependencies.
This way you can compile many packages at once,
e.g. when a low-level package like transformers has changed.
For compiling a couple of packages from their local darcs repositories
in the right order, you may run something like
$ for dir in `find . -name "*.cabal" | fgrep -v _darcs | xargs cabal-sort --info=dir`; \
do (cd $dir && cabal install); \