parseGhcPkgId assumes that an installed package ID is always a package name, a version, and a hash. IPIDs are opaque identifiers generated by Cabal, and Cabal reserves the right to change them (and will be changing them soon, c.f. haskell/cabal#2745 )