Cabal generates the haddock-interfaces and haddock-html package fields even if the haddock documentation is not built nor installed.
Instead of assuming haddock is used, it should add the fields iff needed upon register (install = copy + register), where enough information should be available to make a more clever installation.
Example ghc-pkg describe binary built without haddock:
name: binary
version: 0.4.1
license: BSD3
copyright:
maintainer: Lennart Kolmodin, Don Stewart <dons@galois.com>
stability: provisional
homepage: http://www.cse.unsw.edu.au/~dons/binary.html
package-url:
description: Efficient, pure binary serialisation using lazy ByteStrings.
Haskell values may be encoded to and form binary formats,
written to disk as binary, or sent over the network.
Serialisation speeds of over 1 G\/sec have been observed,
so this library should be suitable for high performance
scenarios.
category: Data, Parsing
author: Lennart Kolmodin <kolmodin@dtek.chalmers.se>
exposed: True
exposed-modules: Data.Binary Data.Binary.Put Data.Binary.Get
Data.Binary.Builder
hidden-modules:
import-dirs: /usr/lib/binary-0.4.1/ghc-6.8.2
library-dirs: /usr/lib/binary-0.4.1/ghc-6.8.2
hs-libraries: HSbinary-0.4.1
extra-libraries:
extra-ghci-libraries:
include-dirs:
includes:
depends: base-3.0.1.0 bytestring-0.9.0.4 base-3.0.1.0
containers-0.1.0.1 array-0.1.0.0
hugs-options:
cc-options:
ld-options:
framework-dirs:
frameworks:
haddock-interfaces: /usr/share/doc/binary-0.4.1/html/binary.haddock
haddock-html: /usr/share/doc/binary-0.4.1/html
Both /usr/share/doc/binary-0.4.1/html/binary.haddock and /usr/share/doc/binary-0.4.1/html are (rightfully) missing in the installation.