with import ./config.nix; let mkCADerivation = args: mkDerivation ({ __contentAddressed = true; outputHashMode = "recursive"; outputHashAlgo = "sha256"; } // args); in rec { currentTime = mkCADerivation { name = "current-time"; buildCommand = '' mkdir $out echo $(date) > $out/current-time ''; }; dep = seed: mkCADerivation { name = "dep"; inherit seed; buildCommand = '' echo ${currentTime} > $out ''; }; dep1 = dep 1; dep2 = dep 2; toplevel = mkCADerivation { name = "toplevel"; buildCommand = '' test ${dep1} == ${dep2} touch $out ''; }; }