{ pkgs ? import ./nix/pkgs.nix {} }:
let
  haskellDeps = import ./nix/haskell-deps.nix;
  settings = import ./nix/settings.nix;
  haskellPackages = pkgs.haskell.packages."${settings.ghc}";

  tools = with pkgs; [
    # nix tools
    niv
    nix-tree

    # haskell tools
    stack
    (haskellPackages.ghcWithPackages haskellDeps)
    haskellPackages.haskell-language-server
    haskellPackages.implicit-hie
  ];
in
  pkgs.mkShellNoCC {
    nativeBuildInputs = tools;
  }