
On Thursday 22 September 2011, 20:18:53, csmagic wrote:
Now I find that I am directed to do at page http://trac.sivity.net/language_c/wiki/GettingStarted
module Main where import Language.C import Language.C.System.GCC -- preprocessor used main = parseMyFile "test.c" >>= printMyAST
Whats with the double import? Does not the contents of Language.C get imported when that is imported?
Only if Language.C.System.GCC re-exports Language.C. By default, nothing (except instance of type classes) imported from another module is re-exported, so if you want to use things from both, you have to import both (thus you have more fine-grained control of what is in scope in your module). If you want to re-export things from an imported module (because using your module wouldn't be convenient without some stuff defined elsewhere), you have to include what you want to re-export in the export list of your module, module Mine (module Imported.Module, local, stuff) where re-exports the entire imported module, to re-export only certain entities, list them individually.