Use template Haskell to generate Uniplate-like functions. WWW: http://hackage.haskell.org/package/geniplate