about summary refs log tree commit diff
path: root/pkgs/top-level/haskell-packages.nix
diff options
context:
space:
mode:
authorDennis Gosnell <cdep.illabout@gmail.com>2022-04-09 09:56:35 +0900
committerDennis Gosnell <cdep.illabout@gmail.com>2022-04-09 11:14:56 +0900
commit49d146101a2a131a86d1a257cb3a3753d8637773 (patch)
tree9a6440b9ee9ddc84a22ed17f25330cc5da9508de /pkgs/top-level/haskell-packages.nix
parentd68508397445283ead6c0344c40ef3ef47e57b22 (diff)
haskell: don't lose packageOverrides for native-bignum
Diffstat (limited to 'pkgs/top-level/haskell-packages.nix')
-rw-r--r--pkgs/top-level/haskell-packages.nix60
1 files changed, 37 insertions, 23 deletions
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index d12542915c7b9..9e77eecaed4b9 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -245,29 +245,43 @@ in {
 
     # The integer-simple attribute set contains package sets for all the GHC compilers
     # using integer-simple instead of integer-gmp.
-    integer-simple = let
-      integerSimpleGhcNames = pkgs.lib.filter
-        (name: ! builtins.elem name integerSimpleExcludes)
-        (pkgs.lib.attrNames packages);
-    in pkgs.lib.genAttrs integerSimpleGhcNames (name: packages.${name}.override {
-      ghc = bh.compiler.integer-simple.${name};
-      buildHaskellPackages = bh.packages.integer-simple.${name};
-      overrides = _self : _super : {
-        integer-simple = null;
-        integer-gmp = null;
-      };
-    });
+    integer-simple =
+      let
+        integerSimpleGhcNames = pkgs.lib.filter
+          (name: ! builtins.elem name integerSimpleExcludes)
+          (pkgs.lib.attrNames packages);
+      in
+      pkgs.lib.genAttrs integerSimpleGhcNames
+        (name:
+          packages.${name}.override (oldAttrs: {
+            ghc = bh.compiler.integer-simple.${name};
+            buildHaskellPackages = bh.packages.integer-simple.${name};
+            overrides =
+              pkgs.lib.composeExtensions
+                (oldAttrs.overrides or (_: _: {}))
+                (_: _: {
+                  integer-simple = null;
+                  integer-gmp = null;
+                });
+          })
+        );
 
-    native-bignum = let
-      nativeBignumGhcNames = pkgs.lib.filter
-        (name: builtins.elem name nativeBignumIncludes)
-        (pkgs.lib.attrNames compiler);
-    in pkgs.lib.genAttrs nativeBignumGhcNames (name: packages.${name}.override {
-      ghc = bh.compiler.native-bignum.${name};
-      buildHaskellPackages = bh.packages.native-bignum.${name};
-      overrides = _self : _super : {
-        integer-gmp = null;
-      };
-    });
+    native-bignum =
+      let
+        nativeBignumGhcNames = pkgs.lib.filter
+          (name: builtins.elem name nativeBignumIncludes)
+          (pkgs.lib.attrNames compiler);
+      in
+      pkgs.lib.genAttrs nativeBignumGhcNames
+        (name:
+          packages.${name}.override (oldAttrs: {
+            ghc = bh.compiler.native-bignum.${name};
+            buildHaskellPackages = bh.packages.native-bignum.${name};
+            overrides =
+              pkgs.lib.composeExtensions
+                (oldAttrs.overrides or (_: _: {}))
+                (_: _: { integer-gmp = null; });
+          })
+        );
   };
 }