
Hi Vasili, Vasili I. Galchin wrote:
I picked an exceedingly case to build an "Executable":
Executable QNameTest Hs-source-dirs: Swish/ Main-Is: HaskellUtils/QNameTest.hs Other-Modules: HaskellUtils.QName
I'm not sure what you did; the original Swish code doesn't have any hierarchical modules. Starting with that, I could build QNameTest like this: executable QNameTest hs-source-dirs: HaskellUtils HaskellRDF HaskellRDF/HUnit main-is: QNameTest.hs other-modules: HUnitLang HUnitBase HUnitText QName QNameTest build-depends: base, haskell98 ghc-options: -main-is QNameTest The trick here is to list all used subdirectories in hs-source-dirs; the module HUnit for example will be found in HaskellRDF/HUnit/ under the name HUnit.lhs. If you have a module A.B.C then the source file should be in foo/A/B/C.hs (or lhs or some other recognized extension) and foo should be listed in hs-source-dirs. Also note the ghc-options line: it tells ghc to use QNameTest instead of Main for the main module. I also managed to produce a Swish executable after a bit of tweaking; you can find my changes in http://int-e.home.tlink.de/haskell/Swish.diff The cabal file is at the end of the diff. HTH, Bertram P.S. I took Swish code from here: http://www.ninebynine.org/RDFNotes/Swish/Intro.html#SwishLinks