`--global` puts `ghc-pkg` in a mode where it's independent of the contents of `~/.cabal` and installs stuff to `/usr/local` instead. Cabal users shouldn't see the difference, as it affects only installation of Cabal and its package dependencies, but not Haskell runtime.