I think both ATerms and the Zephyr project's ASDL could handle recursive types - certainly ASDL was a sum and product representation like ML or Haskell's algebraic types (ATerms were a bit more like Prolog). Both never gained much traction and for better or worse JSON won the game.
I implemented generators for both a very long time ago when I was staring out with Haskell. I didn't use TH or a generics library. If I were doing it again now I'd start with a generics library and see how that pans out - basically you want a type representation and generics libraries have that already. Also I'm no fan of TH. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe