{ config, pkgs, ... }:
let
  ghciWithPkgs = pkgs.haskellPackages.ghcWithPackages (p: with p; [
    tidal
    turtle
  ]);

  ghciWrapper = pkgs.writeShellScriptBin "ghci" ''
    exec ${ghciWithPkgs}/bin/ghci -package tidal turtle "$@"
  '';
in
{
  home.packages = with pkgs; [
    # common 
    ghciWrapper
    haskellPackages.haskell-language-server
    haskellPackages.stack
    haskellPackages.stylish-haskell 

    # dhall
    haskellPackages.dhall
    haskellPackages.dhall-lsp-server
    haskellPackages.dhall-nix

    # integrated haskell platform
    ihp-new
    haskellPackages.ihp
    haskellPackages.ihp-ide
    haskellPackages.ihp-hsx
    haskellPackages.ihp-migrate
  ];
}