// Adds a new path to the aggregate state and increases the ID by one.
 public static Tuple <int, IEnumerable <FileObject> > Add(this Tuple <int, IEnumerable <FileObject> > self, string path) =>
 Tuple.Create(self.Item1 + 1, FileObject.New(self.Item1, path).Cons(self.Item2));