hsenv
If you have never used hsenv before, you should. It's basically the Haskell's equivalent of Python's virtualenv.
You can find a tweaked version of hsenv here: I've relaxed some requirements in order to make it install on newer GHC releases.
Finally, if when using you hit this error:
$ hsenv Creating Virtual Haskell directory structure
Installing GHC Initializing GHC Package database at /home/lollo/work/Unique/.hsenv/ghc_pkg_db
Copying necessary packages from original GHC package database
hsenv: fd:9: hGetContents: invalid argument (invalid byte sequence)
hsenv: thread blocked indefinitely in an MVar operation
Then, you have a problem with your locale. Follow the steps here, and retry.