[Haskell-cafe] How does cabal determine version ranges in the dependencies?