{ system ? builtins.currentSystem }: let pkgs = import ./nix/nixpkgs.nix { inherit system; }; myHaskellPackages = pkgs.haskellPackages.extend (final: prev: { haskell-wasm-repl = import ./. { inherit system; }; }); scripts = [ (pkgs.writeShellScriptBin "clean" "cabal clean") (pkgs.writeShellScriptBin "compile" ''cabal build -j -O2 --ghc-options="-j" "$@"'') (pkgs.writeShellScriptBin "run" ''cabal run -j -O2 --ghc-options="-j" "$@"'') (pkgs.writeShellScriptBin "create-static-env-gcroot" '' nix-store --realise --add-root .gcroots/static-env `nix-instantiate static-env.nix 2> /dev/null` '') (pkgs.writeShellScriptBin "build" "nom-build") (pkgs.writeShellScriptBin "build-static" '' set -xeuo pipefail; nom-build --arg static true create-static-env-gcroot '') (pkgs.writeShellScriptBin "build-docker" '' set -xeuo pipefail; nom-build docker.nix create-static-env-gcroot '') (pkgs.writeShellScriptBin "build-wasm" '' set -xeuo pipefail; nom-build wasm.nix cp -f result/bin/out.wasm web/ create-static-env-gcroot '') (pkgs.writeShellScriptBin "serve" '' ${pkgs.python3}/bin/python server.py '') ]; in myHaskellPackages.shellFor { name = "haskell-shell"; packages = p: [ p.haskell-wasm-repl ]; nativeBuildInputs = with pkgs; [ cabal-install niv nix-output-monitor ] ++ scripts; }