{ pkgs ? import sources.nixpkgs { overlays = [ (import ./pkgs { }) ]; } , sources ? import ./nix/sources.nix }: let haskellPackages = pkgs.haskell.packages.ghc98; jsHaskellPackages = pkgs.pkgsCross.ghcjs.haskell.packages.ghc98; in rec { inherit (haskellPackages) acms; inherit (jsHaskellPackages) frontend; shell = haskellPackages.shellFor { packages = _: [ haskellPackages.acms haskellPackages.autotypes haskellPackages.frontend ]; buildInputs = [ haskellPackages.astore haskellPackages.autotypes haskellPackages.cabal-install haskellPackages.haskell-language-server haskellPackages.ormolu pkgs.pkg-config pkgs.niv (pkgs.writeScriptBin "reload" '' set -efu ${haskellPackages.ghcid.bin}/bin/ghcid -c \ '${haskellPackages.cabal-install}/bin/cabal new-repl' \ -T ':run Main.main' '') (pkgs.writeScriptBin "acms" '' set -efu exec ${haskellPackages.cabal-install}/bin/cabal run acms -- "$@" '') (pkgs.writeScriptBin "format" '' set -efu git ls-files | grep .hs$ | while read -r fn; do ${haskellPackages.ormolu}/bin/ormolu -i "$fn" || : done '') ]; withHoogle = true; withHaddock = true; }; }