FYI this is not about an implementation of hpack in haskell.
This is about a package manager for haskell, called hpack.
I don’t think I’d describe hpack as a package manager. Stack fits that description better, hpack just generates a package description file.
This is the clearest, simplest explanation of what hpack is and why I might want to use it, that I have come across.