I'm new to Cabal, and this phrase "only already installed instances can be used" doesn't make any sense to me.
$ cabal install base==4.7.0.0
Resolving dependencies...
cabal: Could not resolve dependencies:
next goal: base (user goal)
rejecting: base-4.7.0.1 (global constraint requires ==4.7.0.0)
rejecting: base-4.7.0.0 (only already installed instances can be used)
rejecting: base-4.6.0.1/installed-8aa..., 4.6.0.1, 4.6.0.0, 4.5.1.0, 4.5.0.0,
4.4.1.0, 4.4.0.0, 4.3.1.0, 4.3.0.0, 4.2.0.2, 4.2.0.1, 4.2.0.0, 4.1.0.0,
4.0.0.0, 3.0.3.2, 3.0.3.1 (global constraint requires ==4.7.0.0)
Dependency tree exhaustively searched.
What is Cabal trying to communicate here?