I think we just use dependencies different things. This is a problem inherent in cabal.
When I (and others) specify a dependency, I'm saying "My package will work with these packages. I promise."
When you (and others) specify a dependency, you're saying "If you use a version outside of these bounds, my package will break. I promise."
They're similar, but subtly different. There are merits to both of these strategies, and it's unfortunate that this isn't specified in the PVP [1].
Janek: I've already given my method, and Peter has told you his method. Pick either, or make your own! Who knows, maybe someone else (or you!) will have an even better way to deal with this. :)
- Clark