1: { die, lib, pathsTo }: 2: 3: with builtins; 4: with lib; 5: with { 6: addPath = x: path: str: 7: with { 8: pre = if str == null then "" else str + "\n"; 9: name = concatStringsSep "." path; 10: drv = attrByPath (path ++ [ "drvPath" ]) (die { inherit path; }) x; 11: }; 12: pre + name + " " + drv; 13: }; 14: x: 15: fold (addPath x) null (reverseList (pathsTo isDerivation x))