I want to first indicate a layout that works well for me, and then suggest how you can act in your specific situation.
What works well for me
In general, I think the best layout should have the following search path:
- with important non-Haskell binaries
- which
cabal install installed on - that the binaries from the Haskell platform are in
Thus, you can use cabal install to update binaries on the Haskell platform, but they cannot accidentally hide some binaries not related to Haskell.
(On my Windows machine, this layout is easy to achieve because the Haskell platform binaries are installed in a separate directory by default. Therefore, I just manually adapt the search path and it. I donβt know how to achieve this on other platforms).
Suggestion for your specific situation
In your specific situation with Haskell platform binaries that are already installed along with non-Haskell binaries, perhaps you can use the following layout for the search path:
- containing links to some of the binaries in 3
- with important non-Haskell binaries and Haskell platform executables.
- which
cabal install installs in.
Thus, the binaries from cabal install cannot accidentally obscure important material in 2. But if you decide that you want to obscure something from the Haskell platform, you can manually add a link to 1. If this is a soft link, I think that you you only need to do this once for the program name, and then you can call cabal install for this program to update it. You can even see what executables are associated with the Haskell platform, and do it once and for all.
source share