[Haskell-cafe] Data.Generics: how do I get the type name of a value?
Alistair Bayley
alistair at abayley.org
Fri Dec 14 09:11:25 EST 2007
I've been learning/playing with Data.Generics a bit, and have a how-to
question...
If I say
> dataTypeOf ""
then I get
> DataType {tycon = "Prelude.[]", datarep = AlgRep [[],(:)]}
No surprises there. But I'd really like to know that I have a String,
or [Char]. How do I get the name of the concrete type that the list
contains? Is that a reasonable thing to ask for?
I can say:
> gmapQ dataTypeOf "a"
to get:
> [ DataType {tycon = "Prelude.Char", datarep = StringRep}
> , DataType {tycon = "Prelude.[]", datarep = AlgRep [[],(:)]}
> ]
But if I say:
> gmapQ dataTypeOf ""
I get:
> []
which makes sense when you consider the stucture of the List ADT, but
doesn't help me determine the type of the value.
Alistair
More information about the Haskell-Cafe
mailing list