
On 11/11/2010 09:34 PM, Xyne wrote:
I don't mean that the versions would be included in the names, e.g. "haskell-foo-1.4", "haskell-foo-1.5" (that is overly kludgy). I mean that "haskell-foo" would contain foo 1.4, foo 1.5 and whatever other versions of foo that one could reasonably expect. Again, I'm just thinking out loud and I see possible problems with it already such as "bloat" from multiple versions, etc. It's mostly just curiosity about how Cabal manages to install the actual files on the system. We should be able to mirror this in the package itself.
In the case of libraries (where it matters) caball installs into subdirectiories which are named like <libName>-<libVersion>. So there is no file name conflict. When specifying this library as a dependency when building something you can select which version you actually want. In one project you must use only one version of a library (you cannot mix two different versions of a lib into one exe - AFAIK).