Tachchen,Neil Mitchell tells me that he and Simon PJ are in favour of adding instances for Data, Typeable, and Uniplate for many of the datatypes used inside GHC. I agree that this should certainly be done for the external interface of GHC, i.e., core-plugins and GHC API. Here they could be done without introducing new dependencies to GHC itself, therefore are uncontroversial.
Do readers have any arguments for or against including them inside GHC? I like Uniplate very much and I can imagine that there a probably a couple of places where it could be used to clean up some code. Disadvantages are the addition of another dependency and possibly worse performance. According to the Uniplate paper from Haskell'07, Uniplate is on average a bit over 50% slower that hand- coded traversal, however, the Neil claims 25-50% speed improvements [1] of Uniplate 1.2 over Uniplate 1.0, so this may now be less of an issue.
[1]: http://article.gmane.org/gmane.comp.lang.haskell.general/16292 Commens? / Thomas -- Push the envelope. Watch it bend.
PGP.sig
Description: This is a digitally signed message part
_______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
