Skip to content

Instantly share code, notes, and snippets.

@Elvecent
Created November 16, 2020 20:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Elvecent/60c93d9acf97f44f73a1529f8922b6f8 to your computer and use it in GitHub Desktop.
Save Elvecent/60c93d9acf97f44f73a1529f8922b6f8 to your computer and use it in GitHub Desktop.
Haskell Nix
{ nixpkgs ? import ./nix/nixpkgs-2020-09.nix
, hls ? true
, hoogle ? true
}:
let
packageName = "template";
overlay = self: super: {
myHaskellPackages =
super.haskellPackages.override (old: {
overrides = self.lib.composeExtensions (old.overrides or (_: _: {}))
(hself: hsuper: {
${packageName} = hself.callCabal2nix packageName ./. {};
});
});
};
pkgs = import nixpkgs {
overlays = [ overlay ];
};
haskellPackages = pkgs.myHaskellPackages;
in
haskellPackages.shellFor {
packages = ps: [ ps.${packageName} ];
withHoogle = hoogle;
buildInputs = with haskellPackages;
[ ghcid
hlint
stylish-haskell
] ++ (if hls
then [ haskell-language-server ]
else []) ;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment