Enforcing a relation between independent type families.
http://www.haskell.org/pipermail/haskell-cafe/2009-January/053696.html
The question of how to ensure that one type family is the inverse of another comes up once in a while. Here some concrete code.