Add DerivingVia newtype for generic arbitrary

Add a newtype, GenericArbitrary, which can be used with -XDerivingVia to
derive Arbitrary instances for types with Generic, via patching
generic-arbitrary to expose the underlying typeclass it uses for
surfacing the type information.
This commit is contained in:
Griffin Smith 2019-11-29 22:57:58 -05:00
parent 0abcd8c958
commit 7d8ce026a2
5 changed files with 47 additions and 4 deletions

View file

@ -8,7 +8,9 @@ let
if compiler == "default"
then pkgs.haskellPackages
else pkgs.haskell.packages.${compiler}
);
).override {
overrides = import ./haskell-overlay.nix { inherit nixpkgs; };
};
haskellPackages = (
if withHoogle
@ -16,6 +18,10 @@ let
overrides = (self: super: {
ghc = super.ghc // { withPackages = super.ghc.withHoogle; };
ghcWithPackages = self.ghc.withPackages;
# eww https://github.com/NixOS/nixpkgs/issues/16394
generic-arbitrary = pkgs.haskell.lib.appendPatch
super.generic-arbitrary
[ ./generic-arbitrary-export-garbitrary.patch ];
});
}
else packageSet