
Hi, 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? Thanks, steve