
dataTypeOf ""
I've been learning/playing with Data.Generics a bit, and have a how-to question... If I say 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

Hi Alistair,
http://haskell.org/hoogle/?q=typeOf
C:\>ghci
GHCi, version 6.8.1: http://www.haskell.org/ghc/ :? for help
Loading package base ... linking ... done.
Prelude> :m Data.Typeable
Prelude Data.Typeable> typeOf "neil"
[Char]
Thanks
Neil
On 12/14/07, Alistair Bayley
I've been learning/playing with Data.Generics a bit, and have a how-to question...
dataTypeOf ""
If I say 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 _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Hi
http://haskell.org/hoogle/?q=typeOf
C:\>ghci GHCi, version 6.8.1: http://www.haskell.org/ghc/ :? for help Loading package base ... linking ... done. Prelude> :m Data.Typeable Prelude Data.Typeable> typeOf "neil" [Char]
Another great thing is that this bit also works in Hugs, while the Data.Generics stuff is GHC only. Thanks Neil

On 14/12/2007, Neil Mitchell
Another great thing is that this bit also works in Hugs, while the Data.Generics stuff is GHC only.
Great, thanks. Didn't occur to me to look further up the class hierarchy :-) Alistair
participants (2)
-
Alistair Bayley
-
Neil Mitchell