@cis there is a fundamental difference between my implementation and @PhelypeOleinik's one (a part that his is better). My algorithm check that the file has changed *since previous compilation of the main LaTeX file*, and their check if the file has changed *since the last time you checked it*.
So in my implementation, if you call the `IfFileHasChanged` two times in the same LaTeX compilation run, you will have the same answer --- in @PhelypeOleinik's one, the first time it will say if it has changed or not, the second time will say that it hasn't changed.