@@ -17,26 +17,36 @@ let
17 ] ++ lib.optionals (reflex-platform.iosSupport) [
17 ] ++ lib.optionals (reflex-platform.iosSupport) [
18 "ghcIosAarch64"
18 "ghcIosAarch64"
20+ variations = map (v: "reflex" + v) [
21+ "-dontUseTemplateHaskell"
20− hsPkgs = lib.genAttrs compilers (ghc: let
24+ compilerPkgs = lib.genAttrs compilers (ghc: let
21− ghc' = reflex-platform.${ghc}.override {
25+ variationPkgs = lib.genAttrs variations (variation: let
22− overrides = self: super: let
26+ reflex-platform = reflex-platform-fun {
28+ __useTemplateHaskell = variation == "reflex"; # TODO hack
30+ # Use this package's source for reflex
32+ _dep = super._dep // {
23− reflexSrc = builtins.filterSource (path: type: !(builtins.elem (baseNameOf path) [
33+ reflex = builtins.filterSource (path: type: !(builtins.elem (baseNameOf path) [
25− "release.nix"
34+ "release.nix"
30− reflex-dontUseTemplateHaskell = self.callCabal2nixWithOptions "reflex" reflexSrc "-f -use-template-haskell" {};
39+ })
31− reflex = self.callCabal2nixWithOptions "reflex" reflexSrc "-f +use-template-haskell" {};
40+ ];
33− };
42+ in reflex-platform.${ghc}.reflex);
34− in {
43+ in variationPkgs // {
35− inherit (ghc') reflex reflex-dontUseTemplateHaskell;
44+ cache = reflex-platform.pinBuildInputs "reflex-${system}-${ghc}"
45+ (builtins.attrValues variationPkgs);
37− in hsPkgs // {
47+ in compilerPkgs // {
38 cache = reflex-platform.pinBuildInputs "reflex-${system}"
48 cache = reflex-platform.pinBuildInputs "reflex-${system}"
39− (lib.concatLists (map builtins.attrValues (builtins.attrValues hsPkgs)));
49+ (map (a: a.cache) (builtins.attrValues compilerPkgs));
42 metaCache = native-reflex-platform.pinBuildInputs "reflex-everywhere"
52 metaCache = native-reflex-platform.pinBuildInputs "reflex-everywhere"