haskell:9.14-slim-bookworm, pinned by digest in Containerfile, plus make, python3, and the hlint and ormolu release binaries (SHA-256 verified; x86_64 only, so use DP_PLATFORM=linux/amd64 on other hosts)
Native CI
haskell-actions/setup (GHC 9.14.1, latest cabal), plus the same hlint and ormolu release binaries
make toolchain verifies both environments. It checks that every tool is on the release line above. It also checks that hlint and ormolu are the pinned versions.
A project is implemented once it is listed in IMPLEMENTED in the repository's root
Makefile. CI then builds, lints, and tests it in the container and natively on Linux,
macOS, and Windows.
Linked with -rtsopts=ignoreAll, so every argument reaches the parser (-n +RTS is a name)
and GHCRTS is ignored.
On POSIX, Main sets the file-system encoding to UTF-8 (with round-trip escapes) before
getArgs, so arguments decode the same under any locale; on Windows getArgs reads the
UTF-16 command line.