
Neil Mitchell wrote:
The good and bad of each are as follows:
1) Move alex.exe into some global Haskell directory for binaries (which is on the PATH) Not too bad, but while names might not clash, if too Cabal programs both have LICENSE in their same directory, and both read it, things go wrong. The whole issue is that name uniqueness goes.
we have a mechanism for storing data files that go with a program - see http://www.haskell.org/ghc/docs/latest/html/Cabal/authors.html#paths-module so to avoid clashing you just need to choose a unique package identifier. Cabal gives you an easy way to find these files at runtime (import Paths_<pkg>). I'd be happy with tweaking these defaults to put all the binaries in the same place by default. How about prefix = c:/Program Files bindir = $prefix/Haskell/Tools datadir = $prefix/$pkgid See http://www.haskell.org/ghc/docs/latest/html/Cabal/builders.html#setup-config... for the other defaults we currently use. Cheers, Simon