http://www.haskell.org/haskellwiki/Type_families にある type family を使ったGMapみたいなので、それなりに使えるcabalパッケージないかなぁ。