Suppose you have a repo with one file, say "a", in the recorded state
and your unrecorded changes include a file move ./a -> ./b
effectOnFilePaths (invert unrecorded) ["a"] == ["a"]
I would have expected to get ["b"]; more generally I would expect
effectOnFilePaths (invert x) . effectOnFilePaths x
effectOnFilePaths x . effectOnFilePaths (invert x)
This looks like a bug to me.