Author: Tom Sydney Kerckhove <syd@cs-syd.eu>
Committer: Tom Sydney Kerckhove <NorfairKing@users.noreply.github.com>
The build, before there is anything to build The flake, the dev shell, and the checks that will hold every rule that comes after: the warnings this repository is held to, hlint over the whole tree with partial functions banned, weeder over the package set, and the hooks that keep the cabal files and the Nix expressions in step with package.yaml. A library with one function that prints that it has no rules, so that none of those checks is vacuous. Nothing is enforced yet, and nothing here decides anything about Haskell. The warnings are in package.yaml rather than in the overlay, so that a cabal build in the shell says what a Nix build would; the overlay adds -Werror on top, which makes the difference between a warning and a failure a property of how it is built rather than of what it is. -Wunused-packages and weeder are in that set on purpose: they are what will keep each later PR to the machinery its rule actually needs.