
With Data.Generics, we can get an object's type, constructor and fields. I think there should be way to get the object's class(es) and methods. E. g. I want to find out whether the object's type implements Show, and if so, call the show method (and if not, call some replacement). See http://www.haskell.org//pipermail/haskell/2005-November/016992.html see also http://java.sun.com/docs/books/tutorial/reflect/ I know this is again specific to one-parameter type classes. But still, these things occur frequently, don't they. As for classes with more parameters, I guess implementation-wise it is about how to get a representation of the dictionary, and syntax-wise it is about how to specify what dictionary we want. Also I know that Metaprogramming should be done at compile time rather than at run time (as far as possible), and I know that Template Haskell does offer a lot in that direction. But with TH, you construct an abstract source code representation. My idea here is different: I want to write concrete source code that inspects (runtime) type information. (So I don't have to worry about monads generating unique names etc.) Respectfully submitted, -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- ---- http://www.imn.htwk-leipzig.de/~waldmann/ -------