args@{ compilerName ? "ghc802" , extraPackages ? (p: []) , ... }: let defaultPackages = import {}; haskellPackages = defaultPackages.haskell.packages."${compilerName}".override { overrides = self: super: with super; { # threepenny-gui = pkgs.haskell.lib.appendPatch threepenny-gui ./threepenny.patch; encoding = pkgs.haskell.lib.doJailbreak encoding; cabal-test-quickcheck = pkgs.haskell.lib.doJailbreak cabal-test-quickcheck; extended-reals = pkgs.haskell.lib.doJailbreak extended-reals; }; }; pkgs = defaultPackages // haskellPackages // args; callPackage = pkgs.lib.callPackageWith (pkgs // self); self = { thermoprint-spec = callPackage ./spec/thermoprint-spec.nix {}; thermoprint-bbcode = callPackage ./tp-bbcode/thermoprint-bbcode.nix {}; thermoprint-client = callPackage ./client/thermoprint-client.nix {}; thermoprint-server = callPackage ./server/wrapped.nix { inherit extraPackages; thermoprint-server = callPackage ./server/thermoprint-server.nix {}; }; thermoprint-webgui = callPackage ./webgui/thermoprint-webgui.nix {}; tprint = callPackage ./tprint/tprint.nix {}; bbcode = callPackage ./bbcode/bbcode.nix {}; }; in self