I must admit that I added Either in the iterator late in the development when testing edge cases. This method and openNextFile() are updating the iterator state (i.e. logStream and currentFile) and I prefer to update nextTx at the same time instead of by the different callers of this method (and openNextFile() method). This is better to always update these fields together. After the method invocation, the iterator state is ALWAYS consistent.