リストなんかのparametric polymorphismでgenericだというのはトリビアルなわけで、
どれだけのことをGenericにできるかというのが課題なのだと思う。

Generic tree traversal についての最近のpaper(Haskell).
Scrap Your Bilerplate: 
A Practical Design Pattern for Generic Programming
http://www.cs.vu.nl/boilerplate/
Visitor patternとの比較なんかもしてるしreferenceをたどるのも面白いかも。

個人的には"Derivable type classes (2000)"での、
「全ては式である」(by mathematica)的な(data typeの構造について帰納法)
方法に期待していたけれど開発中止っぽい:-(