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.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to