mhwombat
mhwombat

Reputation: 8126

GHC package is hidden

I'm trying to run this simple example that I got from the Haskell wiki.

import GHC
import GHC.Paths ( libdir )
import DynFlags

main = 
    defaultErrorHandler defaultFatalMessager defaultFlushOut $ do
      runGhc (Just libdir) $ do
        dflags <- getSessionDynFlags
        setSessionDynFlags dflags
        target <- guessTarget "test_main.hs" Nothing
        setTargets [target]
        load LoadAllTargets

The error messages I'm getting are:

amy@wombat$ ghc --make amy15.hs 

amy15.hs:1:8:
    Could not find module ‘GHC’
    It is a member of the hidden package ‘ghc-7.8.3’.
    Use -v to see a list of the files searched for.

amy15.hs:3:8:
    Could not find module ‘DynFlags’
    It is a member of the hidden package ‘ghc-7.8.3’.
    Use -v to see a list of the files searched for.

Now, ghc-7.8.3 is what I'm using to do the compilation, so obviously the package is installed.

amy@wombat$ cabal info ghc
* ghc              (library)
    Versions available: [ Not available from server ]
    Versions installed: 7.8.3
... and so on

Why can't GHC see the ghc package?

Upvotes: 8

Views: 4428

Answers (2)

Arnon
Arnon

Reputation: 2237

Most packages are indeed hidden.

To unhide them temporarily, you may use ghc --make amy15.hs -package ghc-7.8.3.

To unhide permanently, use the method @mhwombat suggested.

Upvotes: 9

mhwombat
mhwombat

Reputation: 8126

Apparently the ghc package is hidden by default, at least if you install ghc manually the way I did, rather than installing the Haskell platform. So I needed to "un-hide" the package as follows:

sudo ghc-pkg expose ghc

Upvotes: 13

Related Questions