
each sub-project...have a...Haskell program...building that sub-project
I was trying to build something like this recently but hit a roadblock. Rather than execute the script in each directory, I wanted to import it as a module instead. This way you can, for example, pass functions, like a logger, to a function in the imported module. Also, rather than execute the script immediately, you can combine many sub-projects into a big graph, have a look at common dependencies and use Concurrent Haskell to parallelize the build. Unfortunately, the imported module needs to have the line "module X.Y.Zwhere", which means the file needs to be aware of its parent directories. I think that's too harsh a constraint, and makes it a pain to move things around (true in everyday Haskell projects with local modules too!). My plan for a workaround was to try to use a preprocessor, but would really rather avoid that if anyone else has any ideas. Thanks, Greg