Hello,
> > Prelude Data.Typeable> typeOf
(\a -> (Just (a:"")))
> > (\a -> (Just (a:""))) :: Char ->
Maybe [Char]
> >
> > Prelude Data.Typeable> getDomain $ typeOf (\a
-> (Just (a:"")))
> > [Char]
> >
> > Prelude Data.Typeable>getCodomain $ typeOf (\a
-> (Just (a:"")))
> > (Maybe [Char])
> >
> Data.Typeable should allow for all of the previous.
>
> > Prelude Data.Typeable>getTypeConstructors (Maybe
[Char])
> > [ (Just) :: [Char] -> Maybe [Char]
> > , (Nothing) :: Maybe [Char]
> > ]
> >
> > Prelude Data.Typeable>getTypeConstructors [Char]
> > [ (:) :: Char -> [Char] -> [Char]
> > , ([]) :: [Char]
> > ]
> >
> Data.Generics allows you to do this (to a certain extent), i.e.
> there is a function
>
> dataTypeConstrs :: DataType -> [Constr]
>
It might be hard, or even impossible, to get Data.Typeable and Data.Generics
to play with each other. There seems to be no good way of converting a
Data.Typeable.TypeRep to a Data.Generics.Basics.DataType.
Another option might be to use Language.Haskell.Parser
and Language.Haskell.Syntax, but I have little experience with this and
am not sure if you'll be able to do what you want.
-Jeff
---
This e-mail may contain confidential and/or privileged information. If you
are not the intended recipient (or have received this e-mail in error)
please notify the sender immediately and destroy this e-mail. Any
unauthorized copying, disclosure or distribution of the material in this
e-mail is strictly forbidden.