Hello, I like Bas's variation on the design (except, perhaps, for the name "Tagged" ;) It captures exactly what we are trying to do: the dictionary for Typeable becomes simply the run-time representation of the type. Coincidentally, this is exactly the same as what I am using to link value level numbers/strings to type-level numbers/symbols, on the type-nats branch of GHC. I wonder if it might make sense to unify the two designs?
-Iavor PS: I wouldn't worry too much about breaking existing code, as long as derived Typeable instances continue to work---I never provide custom ones and, in fact, I think that GHC should no allow them or, at least, give a stern warning when it sees one. On Fri, Feb 10, 2012 at 4:35 PM, Bas van Dijk <v.dijk....@gmail.com> wrote: > Or don't use an argument at all: > > class Typeable t where > typeRep :: Tagged t TypeRep > > newtype Tagged s b = Tagged { unTagged :: b } _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users