inputs: finalPkgs: previousPkgs: { haskell = previousPkgs.haskell // { packages = previousPkgs.haskell.packages // { ghc9122 = previousPkgs.haskell.packages.ghc9122.extend ( with previousPkgs.haskell.lib; finalHaskellPkgs: previousHaskellPkgs: { # miso miso = finalHaskellPkgs.callCabal2nix "miso" inputs.miso { }; miso-lynx = finalHaskellPkgs.callCabal2nix "miso-lynx" inputs.miso-lynx { }; # deps jsaddle = finalHaskellPkgs.callCabal2nix "jsaddle" "${inputs.miso.inputs.jsaddle}/jsaddle" { }; jsaddle-warp = dontCheck ( finalHaskellPkgs.callCabal2nix "jsaddle-warp" "${inputs.miso.inputs.jsaddle}/jsaddle-warp" { } ); # cruft crypton = dontCheck previousHaskellPkgs.crypton; cryptonite = dontCheck previousHaskellPkgs.cryptonite; monad-logger = doJailbreak previousHaskellPkgs.monad-logger; string-interpolate = doJailbreak previousHaskellPkgs.string-interpolate; servant-server = doJailbreak previousHaskellPkgs.servant-server; } ); ghcNative = previousPkgs.haskell.packages.ghc9122.extend ( with previousPkgs.haskell.lib; finalHaskellPkgs: previousHaskellPkgs: { # miso miso = finalHaskellPkgs.callCabal2nix "miso" inputs.miso {}; miso-lynx = finalHaskellPkgs.callCabal2nix "miso-lynx" inputs.miso-lynx {}; # deps jsaddle = finalHaskellPkgs.callCabal2nix "jsaddle" "${inputs.miso.inputs.jsaddle}/jsaddle" {}; ghcjs-base = finalHaskellPkgs.callCabal2nix "ghcjs-base" inputs.ghcjs-base {}; # cruft crypton = dontCheck previousHaskellPkgs.crypton; cryptonite = dontCheck previousHaskellPkgs.cryptonite; monad-logger = doJailbreak previousHaskellPkgs.monad-logger; string-interpolate = doJailbreak previousHaskellPkgs.string-interpolate; servant-server = doJailbreak previousHaskellPkgs.servant-server; /* Includes BigInt patch to support the jsbi polyfill, for Quick/PrimJS */ ghc = previousHaskellPkgs.ghc.overrideAttrs (drv: drv // { patches = (drv.patches or []) ++ [ "${inputs.miso}/nix/patches/jsbi.patch" ]; }); } ); }; }; }