{ pkgs, lib ? pkgs.lib }: let callPackage = lib.callPackageWith (pkgs // self); callPackageWithMerged = attrName: f: extraArgs: let mergedSubset = pkgs.${attrName} // self.${attrName}; subsetArgs = builtins.listToAttrs [{ name = attrName; value = mergedSubset; }]; in callPackage f (subsetArgs // extraArgs); self = rec { acme-dns = callPackage ./servers/acme-dns.nix {}; lychee-gallery = callPackage ./web-apps/lychee-gallery.nix {}; }; in self