Background process for Haskell-tools that provides a way to use the tools on a whole project. It also makes it possible to use the tools on the project in a session, reloading modules when needed. The daemon library is independent of the actual set of tools, and takes them as a parameter, so the system can be easily extended by creating a simple new Main module.