GHC uses a per-version package database, so that should never be possible for different GHC versions. For example, I have the 7.4 from platform installed in /usr/bin/ghc (the normal location for Platform installs on OSX) and 7.7 installed in ~/ghc.
Switching between the two versions is as easy as making sure that ~/ghc/bin is on my path before /usr/bin/ghc. All I need to do is "export PATH=~/ghc/bin:$PATH" and things work. Packages get installed in either ~/Library/Haskell/ghc-7.4.1 or ~/Library/Haskell/ghc-7.7 depending on what's in my path when I run "cabal install".
Switching between the two versions is as easy as making sure that ~/ghc/bin is on my path before /usr/bin/ghc. All I need to do is "export PATH=~/ghc/bin:$PATH" and things work. Packages get installed in either ~/Library/Haskell/ghc-7.4.1 or ~/Library/Haskell/ghc-7.7 depending on what's in my path when I run "cabal install".