I disagree that this is a bug or misfeature in the Haskell Platform. The problem is caused by a quirk in how Windows works. There are a few other options I didn't mention. One is to delete the global entry from the 'system' path variable and insert it into the 'user' path variable somewhere after the "%appdata%\cabal\bin" entry. The downside here is that other user accounts will be affected. Another option is to use a custom shortcut or execute a batch script which manually sets PATH variables as needed. This is the method I use personally. On Mon, Jul 13, 2015 at 10:01 AM, Sven Panne <svenpanne@gmail.com> wrote:
2015-07-13 18:41 GMT+02:00 Michael Steele <mikesteele81@gmail.com>:
On Windows the 'system' path variable always has precedence over the 'user' path variable (see [1]). You will need to rename, delete, or overwrite the version of cabal.exe installed globally for the one under %appdata% to be used.
To me that looks like a bug in the Haskell Platform installer: It puts the path to the tools shipped with the platform into the the system PATH and the path to the user-installed tools (i.e. the stuff below %APPDATA%) into the user part of the PATH. This way, you will always get the shipped alex/cabal/happy/HsColour, not the new stuff. This is a bit like putting e.g. /usr/bin before your $HOME/bin on *nices, which is exactly the wrong way round.
Furthermore, I've just seen that there is a 'C:\Program Files\Haskell\bin' at the start of my system PATH, pointing to nowhere. Is this a remnant of former GHC/platform installations? No clue where this comes from...
-- -- Michael Steele