[Haskell-cafe] Failing to install hxt

Daniel Fischer daniel.is.fischer at web.de
Sun Jan 24 07:58:56 EST 2010

Am Sunday 24 January 2010 12:24:37 schrieben Sie:
> Thank you, that worked.
> I wonder two things:
> 1) How to downgrade cabal packages? Just installing tagsoup-0.6 and
> removing every trace of tagsoup-0.8 somehow didn't work for me. cabal
> still insisted that there should be a tagsoup-0.8.

Hm, I'd think if there's no trace of tagsoup-0.8, cabal would use the 
installed versions to satisfy dependencies by preference. But maybe, 
because it sees version 0.8 available, it prefers to use the latest version 
available and allowed.

> 2) Is the commonly used version-scheming >= XYZ ideal?

No. Far from it. It's rotten, as you saw.

> Maybe package maintainers should depend on exactly one version
> they know that works? I mean how can you guarantee, that every
> future version of a package will work?

You can't.
Well, if you only use map, filter and arithmetics,
build-depends: base
is a pretty safe bet, but otherwise, adhere to the recommended dependency-

build-depends: foo >= X.Y.Z && < U

Specifying one exact version is too restrictive, you'll end up with 
everybody having umpteen versions of almost all packages installed.
Minor version bumps which leave the API unchanged shouldn't break anything, 
small additions to the API should rarely break things, so if people adhere 
to http://www.haskell.org/haskellwiki/Package_versioning_policy ,

build-depends: foo >= X.Y.Z && < X.(Y+1)

should be almost safe,

build-depends: foo >= X.Y.Z && < (X+1)

should be fine for relatively stable packages like base.

More information about the Haskell-Cafe mailing list