final: prev: let names = builtins.readDir ./racket-catalog |> final.lib.attrNames; byName = self: final.lib.map (name: { inherit name; value = self.callPackage ./racket-catalog/${name} {}; }) names |> final.lib.listToAttrs; in { racket-minimal = final.callPackage ./racket/minimal.nix {}; racket = final.callPackage ./racket/package.nix {}; instrumentedFetch = drv: drv.overrideAttrs (afinal: aprev: { postFetch = (aprev.postFetch or "") + '' printf "FETCH_HASH:%s:FETCH_HASH" "$(\ ${final.lib.getExe final.nix} --extra-experimental-features "nix-command" \ hash path --sri "$out")" ''; }); racketPackages = final.lib.makeScope final.newScope (self: { racketInstallHook = self.callPackage ./racket-install-hook.nix {}; buildRacketPackage = self.callPackage ./build-racket-package.nix {}; makeRacketEnv = self.callPackage ./make-racket-env.nix {}; } // (byName self)); }