+ let swapDocumentChangeUri :: DocumentChange -> DocumentChange
+ swapDocumentChangeUri (InL textDocEdit) = InL $ swapUri textDocument textDocEdit
+ swapDocumentChangeUri (InR (InL createFile)) = InR $ InL $ swapUri id createFile
+ -- for RenameFile, we swap `newUri`
+ swapDocumentChangeUri (InR (InR (InL renameFile))) = InR $ InR $ InL $ newUri .~ f (renameFile ^. newUri) $ renameFile
+ swapDocumentChangeUri (InR (InR (InR deleteFile))) = InR $ InR $ InR $ swapUri id deleteFile
+
+ newDocChanges = fmap (fmap swapDocumentChangeUri) $ e ^. documentChanges