(Imported from Trac #222, reported by guest on 2008-01-29)
This is related to ticket #221 and #199. Cabal-install at this time always fetches the highest version of a package. But the highest version may not be compatible with the version of GHC.
The example is the HXT package.
As of this writing, version 7.4 is for GHC 6.8. But for those who have GHC 6.6, version 7.3 should be fetched. If there is a flag in Hackage to indicate this compatibility matrix, then cabal-install can make correct decision which version to fetch based on the GHC version the user has.
(Imported comment by @dcoutts on 2008-01-29)
The problem of course is that hackage and cabal-install do not know which packages work in what environments.
See #184 for a mechanism for hackage to gather information about which packages work in which environments.
In the specific case of HXT, there is no need for it to work with just one version of GHC at once since the modifications to make it work with both are trivial. Gentoo has patches to make htx 7.3 work with both ghc-6.6 and 6.8. See http://haskell.org/haskellwiki/Upgrading_packages
(Imported comment by ross on 2008-01-29)
Packages can declare dependencies on particular versions of the base package, which is often what is meant anyway. Of course using configurations to make it work with both is even better.
However the issue remains if a version of a package uses a language extension introduced in a particular version of GHC. A work-around would be to use base version as a proxy for GHC version, but the real thing would be cleaner.
(Imported comment by @dcoutts on 2008-02-20)
We should be able to map extensions to ghc version dependencies. That sounds fairly easy. I can add that if it'd be helpful.
Closing as there's been no activity in years.
We're cleaning up the bug tracker to make it useful again and are thus closing bugs that haven't seen any activity in a long time. Please re-open (or file a new bug) if the problem reappears.