
On Wed, Aug 15, 2007 at 02:34:22PM +0100, Duncan Coutts wrote:
Cabal configurations should make this situation better. Cabal does support ghc back to 6.2.2 and with a suitable .cabal file it should be possible to make most progs work with a range of compiler versions.
I'm not so sure. Cabal configurations look like they will fix the problem, but given a few years every .cabal file out there will look like a pre-autoconf C program's config.h, just a huge tangle of feature tests and conditional module usages... I'd much prefer a situation where the (much smaller number of) library authors carry the burden of compatibility; maybe something like {- in base-2.0's .cabal -} Provides: fps-1.0 by { Data.ByteString* } ... which unfortunately doesn't handle splits (FiniteMap etc) anywhere near as well. Why have package names, again? It seems using modules names instead would completely fix this problem, and with the small restriction that a module name, once used, is not reused for something incompatible, solves the versioning problem as well. Stefan