
Hello Gregory and Philippos Gregory, methinks you are a unix user as "Cabal" gives you a carefree existence (the scare quotes do highlight that it's not poor Cabal's fault). Philippos, the problems you are having aren't which cabal per-se but Haskell libraries that bind C libraries. On Windows I strongly recommend you install Cygwin, outside of the Microsoft toolchain (Visual Studio, C# etc.) any serious development on Windows really is troublesome without it, some development still is but that's another story. Installing Cygwin will pull in a huge amount of code first time round but after that it it manageable. Once you have Cygwin – here's how to install the pcre and readline bindings. Re-run the cygwin installer. For pcre you will need Devel/pcre and Libs/libpcre. For readline you will need Devel/readline and Lib/libreadlineN – I have both libreadline5 and libreadline6 installed, so clearly they can coexist. To build the Haskell bindings you want to be running Cygwin naturally. I'd make a directory in /usr/local tagged to the version of GHC I'm using eg Haskell_ghc_6_10_3 and copy the tar.gz's there (having a directory for a particular GHC version makes it easier to track which packages you are depending upon across GHC updates). Untar the packages with tar (some Windows archivers don't handle Unixed archives well)
tar xvfz readline-1.0.1.0.tar.gz tar xvfz pcre-0.3.1.tar.gz
At this point I'd edit the *.cabal files in each component – this is not 'the done thing', but both libraries need extra flags and as I have to compile them rarely I tend to forget the format (which appears to be Windows style full paths even though you are running Cygwin). Append this to the end of readline.cabal extra-lib-dirs: C:\cygwin\lib include-dirs: C:\cygwin\usr\include\readline C:\cygwin\usr\include Append this to the end of pcre-light.cabal extra-lib-dirs: C:\cygwin\lib include-dirs: C:\cygwin\usr\include Provide you have cygwin at the root of C: (which is very wise!), you should be able to build with the usual runhaskell Setup.lhs { configure | build | install | hadock } Best wishes Stephen