with import ./config.nix;

let

  input = import ./simple.nix;

  dependent = mkDerivation {
    name = "dependent";
    buildCommand = ''
      mkdir -p $out
      echo -n "$input1" > "$out/file1"
      echo -n "$input2" > "$out/file2"
    '';
    input1 = "${input}/hello";
    input2 = "hello";
  };

  readDependent = mkDerivation {
    # Will evaluate correctly because file2 doesn't have any references,
    # even though the `dependent` derivation does.
    name = builtins.readFile (dependent + "/file2");
    buildCommand = ''
      echo "$input" > "$out"
    '';
    input = builtins.readFile (dependent + "/file1");
  };

in readDependent