&gt; each sub-project...have a...Haskell program...building that sub-project<br><br>I was trying to build something like this recently but hit a roadblock.&nbsp; Rather than execute the script in each directory, I wanted to import it as a module instead.&nbsp; This way you can, for example, pass functions, like a logger, to a function in the imported module.&nbsp; 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.
<br><br>Unfortunately, the imported module needs to have the line &quot;module X.Y.Z where&quot;, which means the file needs to be aware of its parent directories.&nbsp; I think that&#39;s too harsh a constraint, and makes it a pain to move things around (true in everyday Haskell projects with local modules too!).
<br><br>My plan for a workaround was to try to use a preprocessor, but would really rather avoid that if anyone else has any ideas.<br><br>Thanks,<br>Greg<br><br><br>