on e94de40 help sign in
haskell.nix/overlays/default.nix
60 lines 1.8 kB history raw
1args:
3let
4 overlays = {
5 wine = import ./wine.nix;
6 #ghcjs = import ./ghcjs-asterius-triple.nix;
7 #python = import ./python.nix;
8 haskell = import ./haskell.nix args;
9 hackage-quirks = import ./hackage-quirks.nix;
10 bootstrap = import ./bootstrap.nix;
11 ghc = import ./ghc.nix;
12 ghc-packages = import ./ghc-packages.nix;
13 windows = import ./windows.nix;
14 armv6l-linux = import ./armv6l-linux.nix;
15 musl = import ./musl.nix;
16 tools = import ./tools.nix;
17 emscripten = import ./emscripten.nix;
18 nix-prefetch-git-minimal = import ./nix-prefetch-git-minimal.nix;
19 gobject-introspection = import ./gobject-introspection.nix;
20 shims = import ./shims.nix;
21 eval-on-current = import ./eval-on-current.nix;
22 eval-on-build = import ./eval-on-build.nix;
23 };
25 composeExtensions = f: g: final: prev:
26 let
27 fApplied = f final prev;
28 prev' = prev // fApplied;
29 in fApplied // g final prev';
31 ordered = with overlays; [
32 # Hide nixpkgs haskell and haskellPackages from the haskell-nix overlays.
33 # This should prevent us inadvertently depending on them.
34 (_: prev: {
35 haskell = { };
36 haskellPackages = { };
37 haskell-nix-prev = prev;
38 })
39 wine
40 haskell
41 hackage-quirks
42 bootstrap
43 ghc
44 ghc-packages
45 windows
46 armv6l-linux
47 musl
48 tools
49 emscripten
50 nix-prefetch-git-minimal
51 gobject-introspection
52 shims
53 # Restore nixpkgs haskell and haskellPackages
54 (_: prev: { inherit (prev.haskell-nix-prev) haskell haskellPackages; })
55 ];
56 combined = builtins.foldl' composeExtensions (_: _: { })
57 (ordered ++ [overlays.eval-on-current]);
58 combined-eval-on-build = builtins.foldl' composeExtensions (_: _: { })
59 (ordered ++ [overlays.eval-on-build]);
60in overlays // { inherit combined combined-eval-on-build; }