{ pkgs ? import { overlays = [ (import ./pkgs) ]; } }: let haskellPackages = pkgs.haskellPackages.override { overrides = self: super: { anissue = (super.callCabal2nix "anissue" ./. { }).overrideAttrs (oldAttrs: { nativeBuildInputs = [ pkgs.installShellFiles ]; buildInputs = oldAttrs.buildInputs or [] ++ [ pkgs.makeWrapper ]; postInstall = '' exe=${oldAttrs.pname} wrapProgram $out/bin/$exe --prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.git pkgs.mdcat pkgs.tree-grepper ]} installShellCompletion --cmd $exe \ --bash <($out/bin/$exe --bash-completion-script $out/bin/.$exe-wrapped) \ --fish <($out/bin/$exe --fish-completion-script $out/bin/.$exe-wrapped) \ --zsh <($out/bin/$exe --zsh-completion-script $out/bin/.$exe-wrapped) ''; }); }; }; in rec { inherit (haskellPackages) anissue; shell = haskellPackages.shellFor { packages = _: [ anissue ]; buildInputs = [ haskellPackages.cabal-install haskellPackages.ormolu pkgs.ghcid pkgs.git pkgs.haskell-language-server pkgs.mdcat pkgs.tree-grepper ]; withHoogle = true; shellHook = '' HISTFILE=${pkgs.lib.escapeShellArg ./.}/.history; export HISTFILE ''; }; }