1{
2 pkgs,
3 lib,
4 makeWrapper,
5 nodejs,
6 fetchElmDeps,
7}:
8
9self:
10pkgs.haskell.packages.ghc96.override {
11 overrides =
12 self: super:
13 let
14 inherit (pkgs.haskell.lib.compose) overrideCabal;
15 elmPkgs = rec {
16 elm = overrideCabal (drv: {
17 # sadly with parallelism most of the time breaks compilation
18 enableParallelBuilding = false;
19 preConfigure = fetchElmDeps {
20 elmPackages = (import ../elm-srcs.nix);
21 elmVersion = drv.version;
22 registryDat = ../../registry.dat;
23 };
24 buildTools = drv.buildTools or [ ] ++ [ makeWrapper ];
25 postInstall = ''
26 wrapProgram $out/bin/elm \
27 --prefix PATH ':' ${lib.makeBinPath [ nodejs ]}
28 '';
29
30 description = "Delightful language for reliable webapps";
31 homepage = "https://elm-lang.org/";
32 license = lib.licenses.bsd3;
33 maintainers = with lib.maintainers; [
34 turbomack
35 ];
36 }) (self.callPackage ./elm { });
37
38 inherit fetchElmDeps;
39 elmVersion = elmPkgs.elm.version;
40 };
41 in
42 elmPkgs
43 // {
44 inherit elmPkgs;
45
46 ansi-wl-pprint = overrideCabal (drv: {
47 jailbreak = true;
48 }) (self.callPackage ./ansi-wl-pprint { });
49 };
50}