{ final, prev, ... }: let spm = let # defaultPackages = (import ./stackage.nix {}); # haskellPackages = defaultPackages // argumentPackages; # haskellPackages = argumentPackages; haskellPackages = final.haskell.packages.ghc922.override { overrides = self: super: { warp-systemd = final.haskell.lib.doJailbreak (super.warp-systemd.overrideAttrs (oldAttrs: { meta = oldAttrs.meta // { broken = false; }; })); servant-server = super.servant-server.overrideAttrs (oldAttrs: { patches = []; }); hpack = super.hpack.overrideAttrs (oldAttrs: rec { version = "0.35.0"; src = prev.fetchFromGitHub { owner = "sol"; repo = "hpack"; rev = "0.35.0"; hash = "sha256-DMxCHwz9x2e4kSOIk1/qeW3aDFHw88LNW+4vXxDV9EI="; }; }); }; }; spm-frontend = final.callPackage ./frontend { baseHref = "/ui/"; }; in final.haskell.lib.overrideCabal (haskellPackages.callPackage ./spm.nix {}) (oldAttrs: { src = final.lib.cleanSourceWith rec { filter = let isFiltered = src ? _isLibCleanSourceWith; origSrc = if isFiltered then src.origSrc else src; relPath = path: final.lib.removePrefix (toString origSrc + "/") (toString path); in path: _type: builtins.match "^frontend(/.*)?$" (relPath path) == null; src = ./.; }; postPatch = '' ${oldAttrs.postPatch or ""} ln -sfTv ${spm-frontend} frontend ''; }); in { inherit spm; }