| > 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. | | I don't know enough about Uniplate to make a judgement on that point, | so I'll just pipe up and say that having Data/Typeable instances for | Expr, Binds and friends would be of much benefit to the GHC plugins | project. I've actually already written my own instances and put them | straight into CoreSyn.hs on the plugins branch, but having them | available via an explicit import is probably a better approach.
You can implement Uniplate on top of Data/Typeable. (It's slightly slower than giving Uniplate instances directly, but if my memory serves, not a lot. See Neil's theis.) So you can think of Uniplate/Biplate as a rather nice API for generic programming, but one that shares a common set of instances underneath. I'll all for having Data/Typeable instances for the main GHC types, and a Uniplate API available on top. Simon _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
