
I have a solution to the linking problem, at least for ghc users. I added the -v option to my "runhaskell Setup.hs build" command, and tried adding various properties. The break came when I realized ghc was being given the --make option, and with this option, one cannot satisfy it only with an interface file. Ghc either gets the information it needs from a source file, or from a package. So the trick is to include a package.conf file in your distribution that specifies only relative paths (dist/build). You then add ghc specific options to your Cabal package description. a.cabal --------------------- Name: a Version: 1.0 Build-Depends: base Exposed-Modules: A Executable: b Main-Is: Main.hs Hs-Source-Dirs: exec ghc-options: -package-conf package.conf -package a --------------------- package.conf --------------------- [InstalledPackageInfo {package = PackageIdentifier {pkgName = "a", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}, license = AllRightsReserved, copyright = "", maintainer = "", author = "", stability = "", homepage = "", pkgUrl = "", description = "", category = "", exposed = True, exposedModules = ["A"], hiddenModules = [], importDirs = ["dist/build"], libraryDirs = ["dist/build"], hsLibraries = ["HSa-1.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["dist/build/include"], includes = [], depends = [PackageIdentifier {pkgName = "base", pkgVersion = Version {versionBranch = [2,1,1], versionTags = []}}], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/ramsdell/proj/b/goo/share/a-1.0/doc/html/a.haddock"], haddockHTMLs = ["/home/ramsdell/proj/b/goo/share/a-1.0/doc/html"]}] --------------------- So it's not a Cabal bug after all! In my package.conf file, can I get away with just specifying the pkgName, exposed, exposedModules, importDirs, libraryDirs, and hsLibraries fields? John