--- /dev/null
+#!/bin/sh -eux
+
+# DESCRIPTION: unregister broken GHC packages.
+# Run this a few times to resolve dependency rot in installed packages.
+# ghc-pkg-clean -f cabal/dev/packages*.conf also works.
+packages=$(ghc-pkg check $* 2>&1 |
+ grep problems |
+ awk '{print $6}' |
+ sed -e 's/:$//'
+ )
+for p in $packages
+ do
+ echo unregistering $p
+ ghc-pkg "$@" unregister $p
+ done