diff --git a/overlays/30-ghc.nix b/overlays/30-ghc.nix index bb7633c5..edb5596e 100644 --- a/overlays/30-ghc.nix +++ b/overlays/30-ghc.nix @@ -1,15 +1,22 @@ self: super: let master = import super.sources.nixpkgs-master { }; - pkgs = master; inherit (master.haskell.lib) overrideCabal unmarkBroken; -in { - myHaskellPackages = { - inherit (master.haskellPackages) - brittany ormolu releaser cabal-fmt stack ghcide cabal-install dhall aeson - unordered-containers shh string-interpolate relude replace-megaparsec - async say cmdargs megaparsec fdo-notify these neuron taskwarrior pandoc - hlint Cabal cabal2nix; + makeHaskellScriptPackages = p: { + inherit (p) + aeson shh string-interpolate relude replace-megaparsec async say + megaparsec fdo-notify these; }; - ghc = master.ghc.withPackages (_: builtins.attrValues self.myHaskellPackages); + makeHaskellPackages = p: + { + inherit (p) + brittany ormolu releaser cabal-fmt stack ghcide cabal-install dhall + aeson unordered-containers these neuron taskwarrior pandoc hlint + cabal2nix; + } // makeHaskellScriptPackages p; +in { + myHaskellPackages = makeHaskellPackages master.haskellPackages; + scriptGhc = master.ghc.withPackages + (p: builtins.attrValues (makeHaskellScriptPackages p)); + ghc = master.ghc.withPackages (p: builtins.attrValues (makeHaskellPackages p)); } diff --git a/overlays/writeHaskellScript.nix b/overlays/writeHaskellScript.nix index 8e985a5d..370fa1e0 100644 --- a/overlays/writeHaskellScript.nix +++ b/overlays/writeHaskellScript.nix @@ -1,12 +1,11 @@ self: super: { haskellList = list: ''["${builtins.concatStringsSep ''", "'' list}"]''; - writeHaskellScript = - { name ? "haskell-script", bins ? [ ], imports ? [ ] }: + writeHaskellScript = { name ? "haskell-script", bins ? [ ], imports ? [ ] }: code: self.writers.makeBinWriter { compileScript = '' cp $contentPath ${name}.hs - ${self.ghc}/bin/ghc ${name}.hs -threaded -Wall -Wno-unused-top-binds -Wno-missing-signatures -Wno-type-defaults -Wno-unused-imports -Werror + ${self.scriptGhc}/bin/ghc ${name}.hs -threaded -Wall -Wno-unused-top-binds -Wno-missing-signatures -Wno-type-defaults -Wno-unused-imports -Werror mv ${name} $out ${self.binutils-unwrapped}/bin/strip --strip-unneeded "$out" '';