Hpack is a format for Haskell packages. It is a modern alternative to the Cabal package format and follows different design principles. Hpack packages are described in a file named package.yaml. Both cabal2nix and stack support package.yaml natively. For other build tools the hpack executable can be used to generate a .cabal file from package.yaml.