public static async Task syncDirectory(PathChange change)
		{
			if (change.Mode != ChangeMode.Deep)
				return;

			var rfs = change.ReadFileSystem;
			var sourceEntries = rfs.scan(change.Source);
			var targetEntries = rfs.scan(change.Target);

			var all = sourceEntries.Concat(targetEntries).Distinct();

			await Task.WhenAll(all.Select(str => Synchronizer.sync(change.nested(str))));
		}