Skip to content
Adam Bergmark edited this page Dec 10, 2013 · 1 revision

ghc-pkg: cannot find package fay-base

If you install fay in a sandbox Fay won't know where to look for packages.

To fix this set HASKELL_PACKAGE_SANDBOX to the location of the sandbox package config, such as:

HASKELL_PACKAGE_SANDBOX=./.cabal-sandbox/x86_64-osx-ghc-7.6.3-packages.conf.d/ fay examples/canvaswater.hs

If you use a custom cabal Setup.hs and invoke Fay from the postBuild hook you can find the package config that's used in LocalBuildInfo:withPackageDB.

unable to find (existing) package's share dir

This can be because you are running a sandbox, see instructions on how to use the HASKELL_PACKAGE_SANDBOX sandbox flag above.

If that doesn't help: Fay assumes a certain directory structure for installed packages and will tell you were it looked. If you are using a custom build setup (such as installing Fay from apt-get or similar) the structure may look different depending on the rules of the distribution.

To solve this you can either symlink the packages to where fay looks, or use --base-path to give the location of fay-base and --include the source directories of other fay packages.

Once Cabal 1.20 is out and Fay starts using haskell-packages these problems should be resolved.

runtime error Prelude.$36$ is undefined (or similar)

This used to happen if you forgot to explicitly import Prelude in a module. Newer versions of Fay pass -XNoImplicitPrelude to GHC so as long as you don't disable typechecking you shouldn't see this error.