For commands other than register, ghc-pkg --user operates on both the user and global package databases, whereas the the docs and online help says it operates on the user database only. Also, ghc-pkg list queries only the system database (unless --user is given), but the the docs say it queries both.