From 6e6ce2c1fcaaa57cd25fa2a59c5fb77b0474705f Mon Sep 17 00:00:00 2001 From: maralorn Date: Fri, 3 Mar 2023 00:06:45 +0100 Subject: [PATCH] Much better Haskell environment --- overlays/flake-module.nix | 1 - overlays/ghc/default.nix | 24 +++++++++++++++++++----- packages/flake-module.nix | 6 +++--- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/overlays/flake-module.nix b/overlays/flake-module.nix index a4045bb0..d1fa9e8d 100644 --- a/overlays/flake-module.nix +++ b/overlays/flake-module.nix @@ -14,7 +14,6 @@ flake-inputs = inputs; flake-inputs' = inputs'; }) - inputs.self.overlays.addMyHaskellPackages ] ++ (let overlayPath = ./.; diff --git a/overlays/ghc/default.nix b/overlays/ghc/default.nix index 00a6f96d..ffe42eda 100644 --- a/overlays/ghc/default.nix +++ b/overlays/ghc/default.nix @@ -1,6 +1,20 @@ -final: _: let +final: prev: let myPkgs = import ./packages.nix; -in { - myHaskellScriptPackages = myPkgs.makeHaskellScriptPackages final.haskellPackages; - ghcWithPackages = final.unstableGhc.withHoogle (p: builtins.attrValues (myPkgs.makeHaskellPackages p // (final.flake-inputs.self.overlays.addMyHaskellPackages "" ""))); -} + inherit (prev.flake-inputs) self; + inherit (self.lib) selectHaskellPackages; + hpkgs = final.unstableHaskellPackages.override { + overrides = self.overlays.haskellPackagesOverlay; + }; + shell = hpkgs.shellFor { + withHoogle = true; + packages = p: builtins.attrValues (self.lib.selectHaskellPackages p); + extraDependencies = p: { + libraryHaskellDepends = builtins.attrValues (myPkgs.makeHaskellPackages p // selectHaskellPackages p); + }; + }; +in + { + myHaskellScriptPackages = myPkgs.makeHaskellScriptPackages final.haskellPackages; + ghcWithPackages = builtins.head shell.nativeBuildInputs; + } + // selectHaskellPackages hpkgs diff --git a/packages/flake-module.nix b/packages/flake-module.nix index 188e1036..a20cb21e 100644 --- a/packages/flake-module.nix +++ b/packages/flake-module.nix @@ -80,9 +80,9 @@ }; packages = selectHaskellPackages hpkgs; in { - flake.overlays = { - inherit haskellPackagesOverlay; - addMyHaskellPackages = _: _: packages; + flake = { + lib = {inherit selectHaskellPackages;}; + overlays = {inherit haskellPackagesOverlay;}; }; perSystem = {config, ...}: { inherit packages;