[Haskell-cafe] Cabal dependencies

Stephen Hicks sdh33 at cornell.edu
Thu Jan 15 18:38:59 EST 2009


I'm having some difficulty specifying dependencies in my .cabal file
for a package I'm looking to upload to hackage soon.  The difficulty
is as follows.  I basically want to specify
  parsec (>= 2.1 && < 3.0.0) || (> 3.0.0 && < 4)
The problem is that 3.0.0 as it exists on hackage is missing a
constructor that I need (namely, Postfix, in the compatibility
module).  The bug was fixed and will presumably work fine if a newer
version of parsec is ever uploaded to hackage, and my package works
fine with older parsecs as well - I just want to exclude this one
version.  How can I go about doing that?

A secondary question is this - I can actually compile with version
3.0.0 by just not using this constructor, although it does reduce the
package's functionality.  I've seen flags in various .cabal files, and
presumably I could invent a flag to make it work with 3.0.0, but I'm
confused about how these flags are set.  Specifically, cabal-install
has never asked me anything about flags, so what's the point?  Or does
it automatically set whichever flags satisfy the dependencies?


More information about the Haskell-Cafe mailing list