ghc -M doesn't handle addDependentFile or #included files
ghc -M doesn't emit dependencies specified by TH's
addDependentFile, not does it emit dependencies for
The former is quite hard to do, because it requires compiling the code: we only have the information about
addDependentFile calls after compilation. So in order to fix this,
ghc -c would have to drop some information somewhere for the build system to pick up.
In theory we should only have to preprocess files to get the list of #included files, and ghc -M already preprocesses all the files. However, currently #included files are picked up by the lexer during parsing, so fixing this isn't trivial.