about summary refs log tree commit diff
path: root/third_party/overlays/haskell
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/overlays/haskell')
-rw-r--r--third_party/overlays/haskell/default.nix26
-rw-r--r--third_party/overlays/haskell/patches/generic-arbitrary-export-garbitrary.patch12
2 files changed, 38 insertions, 0 deletions
diff --git a/third_party/overlays/haskell/default.nix b/third_party/overlays/haskell/default.nix
new file mode 100644
index 000000000000..ccabe0a90e4e
--- /dev/null
+++ b/third_party/overlays/haskell/default.nix
@@ -0,0 +1,26 @@
+# Defines an overlay for overriding Haskell packages, for example to
+# avoid breakage currently present in nixpkgs or to modify package
+# versions.
+
+{ lib, ... }:
+
+self: super: # overlay parameters for the nixpkgs overlay
+
+let
+  overrides = hsSelf: hsSuper: with super.haskell.lib; {
+    generic-arbitrary = appendPatch hsSuper.generic-arbitrary
+      [ ./patches/generic-arbitrary-export-garbitrary.patch ];
+
+    nix-diff = overrideSrc hsSuper.nix-diff {
+        src = builtins.fetchTarball {
+          # https://github.com/Gabriel439/nix-diff/pull/50
+          url = "https://github.com/Profpatsch/nix-diff/archive/6234936b26cd144d321039a44cf1791dcfaee026.tar.gz";
+          sha256 = "1i3ahh8jmiayf29i1xrl2n1dkldgdmrllmccxi4yx6hbcd0r2b1l";
+        };
+      };
+  };
+in {
+  haskellPackages = super.haskellPackages.override {
+    inherit overrides;
+  };
+}
diff --git a/third_party/overlays/haskell/patches/generic-arbitrary-export-garbitrary.patch b/third_party/overlays/haskell/patches/generic-arbitrary-export-garbitrary.patch
new file mode 100644
index 000000000000..f0c936bfca18
--- /dev/null
+++ b/third_party/overlays/haskell/patches/generic-arbitrary-export-garbitrary.patch
@@ -0,0 +1,12 @@
+diff --git a/src/Test/QuickCheck/Arbitrary/Generic.hs b/src/Test/QuickCheck/Arbitrary/Generic.hs
+index fed6ab3..91f59f1 100644
+--- a/src/Test/QuickCheck/Arbitrary/Generic.hs
++++ b/src/Test/QuickCheck/Arbitrary/Generic.hs
+@@ -23,6 +23,7 @@ The generated 'arbitrary' method is equivalent to
+ 
+ module Test.QuickCheck.Arbitrary.Generic
+   ( Arbitrary(..)
++  , GArbitrary
+   , genericArbitrary
+   , genericShrink
+   ) where