Exposed module still hidden, why?

J. Garrett Morris trevion at
Tue Nov 20 15:31:39 EST 2007

As I understand it, Cabal hides all packages by default.  If a package
is not in your dependencies, it won't be available to the build, no
matter the status in ghc-pkg.

(Incidentally, this had neat consequences in the past, since it means
that packages being hidden in ghc-pkg also does not make them
unavailable to cabal.  I spent some time at a previous employer
attempt to debug a build failure where it turned out that the
developer experiencing the failure had not pulled all the changes.  In
particular, we had packages A, B, and C, where C depended on A and B,
and B depended on A.  The developer had pulled updates to A and C, but
not B.  A built and installed a new version, hiding B (which was based
on an old version).  The developer the build C.  Cabal started with
everything hidden, then revealed A and B as specified by C's cabal
file, and the predictable build failures resulted.  I have not tried
this with GHC/Cabal builds since 6.4.2, so this is probably no longer


On Nov 20, 2007 2:18 PM, Greg Fitzgerald <garious at> wrote:
> Using GHC 6.8.1 on Windows XP, after having used ghc-pkg to expose
> 'directory-', I am getting an error when I build haddock that says
> the package is hidden.  When I type "ghc-pkg list", the package is not in
> parenthesis.  Typing "ghc -v" says that it is using the file from
> "C:\ghc\ghc- 6.8.1\package.conf".  That package.conf file has the 'exposed'
> set to True for that file.  Why does GHC still think the package is hidden?
> ...\haddock-0.8>runhaskell Setup.lhs configure
> Configuring haddock-0.8...
> ...\haddock-0.8>runhaskell Setup.lhs build
> Preprocessing executables for haddock-0.8...
> shift/reduce conflicts:  5
> Building haddock-0.8...
> src/Main.hs:49:7:
>     Could not find module `System.Directory':
>       it is a member of package directory-, which is hidden
> ...\haddock-0.8>ghc-pkg list
> C:/ghc/ghc-6.8.1\package.conf:
>     Cabal-, HUnit-, OpenGL-, QuickCheck-,
>     Win32-, array-, base-, bytestring-,
>     cgi-3001.1.5.1, containers-, directory-, fgl-,
>     filepath-, (ghc-6.8.1), haskell-src-,
>     haskell98- , hpc-, html-, mtl-,
>     network-, old-locale-, old-time-,
>     packedstring-, parallel-, parsec-,
>     pretty-, process-, random- ,
>     regex-base-, regex-compat-, regex-posix-,
>     rts-1.0, stm-, template-haskell-, time-,
>     xhtml-3000.0.2.1
> Thanks,
> Greg
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at

The man who'd introduced them didn't much like either of them, though
he acted as if he did, anxious as he was to preserve good relations at
all times. One never knew, after all, now did one now did one now did

More information about the Glasgow-haskell-users mailing list