for(Pair<Path.Entry<?>,Path.Root> p : delta) {
Path.Entry<WyilFile> sf = (Path.Entry<WyilFile>) p.first();
Path.Root dst = p.second();
Path.Entry<WyalFile> df = (Path.Entry<WyalFile>) dst.create(sf.id(), WyalFile.ContentType);
generatedFiles.add(df);
WyalFile contents = build(sf.read());
// Write the file into its destination
df.write(contents);
// Then, flush contents to disk in case we generate an assertion
// error later. In principle, this should be unnecessary when
// syntax errors are no longer implemented as exceptions.