@@ -620,14 +620,12 @@ final: prev: {
620620 withInputs = final.recurseIntoAttrs;
621621
622622 # Add this to your tests to make all the dependencies of haskell.nix
623− # are tested and cached.
624− roots = compiler-nix-name: final.recurseIntoAttrs {
625− Level0 = roots' compiler-nix-name 0;
626− Level1 = roots' compiler-nix-name 1;
627− # Should be safe to use this now we have materialized everything
628− # except the tests
629− Level2 = roots' compiler-nix-name 2;
630− };
623+ # are tested and cached. Consider using `p.roots` where `p` is a
624+ # project as it will automatically match the `compiler-nix-name`
625+ # of the project.
626+ roots = compiler-nix-name: final.linkFarm "haskell-nix-roots-${compiler-nix-name}"
627+ (final.lib.mapAttrsToList (name: path: { inherit name path; })
628+ (roots' compiler-nix-name 2));
631629
632630 roots' = compiler-nix-name: ifdLevel:
633631 final.recurseIntoAttrs ({