haskellPackages.mkDerivation: add doHaddockInterfaces option
This adds a new builder option `doHaddockInterfaces` to enable the -haddock flag in GHC,
which results in Haddock comments parsed at compile-time and embedded in
interface files. These are used by the :doc command in GHCi, as well as IDE
tools like ghcide and hls to display docs on hover.
The `-haddock` flag has been around since at least 8.2, even though it does not
get a mention in the GHC Users guide.
There are two downsides to turning on this flag:
1. Increased compile times, since Haddocks must be parsed and then encoded
2. Haddock parse errors now become compile errors for GHC < 9.0.1
(https://gitlab.haskell.org/ghc/ghc/-/issues/8944)
Thus we only enable the feature if we have GHC 9.0.1 and haddock is
enabled; when 9.0.1 becomes the default GHC, we may need to reevaluate
the performance concern.
Co-authored-by: sternenseemann <sternenseemann@systemli.org>
authored by