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
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 <alistair@abayley.org> wrote:
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 _______________________________________________ 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 <ndmitchell@gmail.com> wrote:
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