anchor.diff:    referencesByPopularity,
     writeScript,
     writeText,
  +  closureInfo
   }:
   
   # WARNING: this API is unstable and may be subject to backwards-incompatible changes in the future.
  
positive.code:   # the container.
    # Be careful since this doesn't work well with multilayer.
    buildImageWithNixDb = args@{ contents ? null, extraCommands ? "", ... }:
      buildImage (args // {
        extraCommands = ''
          echo "Generating the nix database..."
          echo "Warning: only the database of the deepest Nix layer is loaded."
          echo "         If you want to use nix commands in the container, it would"
          echo "         be better to only have one layer that contains a nix store."
          # This requires Nix 1.12 or higher
          export NIX_REMOTE=local?root=$PWD
          ${nix}/bin/nix-store --load-db < ${nixRegistration contents}/db.dump
  
          # We fill the store in order to run the 'verify' command that
          # generates hash and size of output paths.
          # Note when Nix 1.12 is be the stable one, the database dump
          # generated by the exportReferencesGraph function will
          # contains sha and size. See
          # https://github.com/NixOS/nix/commit/c2b0d8749f7e77afc1c4b3e8dd36b7ee9720af4a
          storePaths=$(cat ${nixRegistration contents}/storePaths)
          echo "Copying everything to /nix/store (will take a while)..."
          cp -prd $storePaths nix/store/
          ${nix}/bin/nix-store --verify --check-contents
  
          mkdir -p nix/var/nix/gcroots/docker/
          for i in ${lib.concatStringsSep " " contents}; do
            ln -s $i nix/var/nix/gcroots/docker/$(basename $i)
          done;
        '' + extraCommands;
  
negative.code:       set -e
        export PATH=${coreutils}/bin:/bin
        ${text}
      '';
  
    # Create $maxLayers worth of Docker Layers, one layer per store path
  