Hi, I'm trying to extract the names and types of exported functions in a module. At the moment I've managed to get a list of all functions in a module but I can't seem to figure out how to get their types. Lets say I got the module module Foo where foo1 :: String -> String foo1 value = value foo2 = "hej" and then in anothor module... module Bar where bar = $(getAllFunctions "<some-path>/Foo.hs") At the moment I got getAllFunctions returning ["foo1","foo2"], but I would really like to get it to return [("foo1",AppT (ConT "String") (ConT "String")), ("foo2",ConT "String")] Using "parseModuleWithMode" from Language.Haskell.Exts I can get hold of the names and the type signature of foo1 (since it's specified in the source code) but I cannot get hold of the type signature of foo2 (since it's not specified in the source code). Is there another way to get the names/signatures of exported functions from a module other than using parseModuleWithMode so the developer writing the Foo-module isn't forced to explicitly supply type signatures of the exported functions? If I try "reify" to get information about the functions I get the error message: "foo1 is not in scope at a reify" This seems to be a known bug about reify (reported here http://hackage.haskell.org/trac/ghc/ticket/2339). My problem is that I cannot use the workaround since I don't know the name of the functions. Another disadvantage with this approach is that "getAllFunctions" must have access to the source code of the module and that I must supply the path the the module. If possible I would like to have code such as bar = $(getAllFunctions "Foo") instead of "<come-path>/Foo.hs". Regards, Oscar Finnsson