let pkgs = import ./nix/pkgs.nix; stable = pkgs.stable; unstable = pkgs.unstable; # Haskell packages ghc = stable.haskell.compiler.ghc910; hls = stable.haskell.packages.ghc910.haskell-language-server; # PostgreSQL client tools (server + pg_cron run inside the container) pg = stable.postgresql_18; in stable.mkShell { name = "webserver-dev"; buildInputs = [ # Haskell toolchain ghc hls unstable.haskellPackages.cabal-install unstable.haskellPackages.hoogle # Formatters stable.stylish-haskell stable.haskellPackages.fourmolu stable.haskellPackages.cabal-fmt stable.nixfmt-classic # Database tools stable.libpq pg unstable.sqitchPg # Build dependencies stable.pkg-config stable.zlib # CLI tools unstable.just unstable.amber-lang unstable.watchexec unstable.rainfrog stable.dotenvx # Container tools stable.podman stable.podman-compose ]; # Ensure cabal can find native libraries LD_LIBRARY_PATH = "${stable.libpq}/lib:${stable.zlib}/lib"; PKG_CONFIG_PATH = "${stable.libpq}/lib/pkgconfig:${stable.zlib}/lib/pkgconfig"; }