processModules documentation says:
Create interfaces and a reference environment by checking the list of modules using the GHC API and processing the resulting syntax trees.
And this is the main function of haddock . So the ATM will answer your question: No.
cabal build does not help cabal haddock , since haddock checks module types with various parameters (for example, __HADDOCK__ CPP variable is enabled)
Creating reliable incremental generation of picks is difficult because the code, which later on the dependency chart, can change the documentation of the modules that precede this point: especially lists of instances. It would probably be possible to build module interfaces.
Taking a look at the processModules code , the first step is something that could be done in stages, and rest using global information.
Try translating verbosity into max ie --haddock-options=--verbosity=2 and check how much time is spent between Creating interfaces... and Attaching instances...
source share