vabal is a software that helps you determine the ghc version needed to compile a cabal package. It reads the cabal file and extracts the constraints imposed on the base package. Then it uses ghcup ( https://github.com/haskell/ghcup ) to obtain a compiler version compatible with the constraints (possibly downloading it from the official ghc mirror) and can be combined with cabal to build the project using the obtained ghc compiler.
In this way you can treat the `base` package dependency as any other package dependency and don't have to manually deal with different ghc versions anymore.
vabal is meant to be used in collaboration with cabal. It leverages cabal's ability to work with multiple ghc versions, and tries to be the least intrusive possible, so that you can keep using your usual workflow, but won't have to worry about `base` package dependency issues, anymore.