nix-playgraound/25-haskell-state

25-haskell-state

This example shows intermediate Haskell planning with State.

It includes:

  • a planner state that tracks build numbers and rollout waves,
  • stateful allocation of per-environment wave numbers,
  • a CLI that renders a deployment plan from compact request strings, and
  • a test suite run by nix flake check.

Useful commands:

nix develop
cabal run
cabal run -- api:production:3 worker:staging:1 cache:production:2
cabal test

nix build
./result/bin/mini-state-planner api:production:3 worker:staging:1 cache:production:2

nix run . -- api:production:3 worker:staging:1 cache:production:2
nix flake check