Undo-Redo is a constinuent and multi- feature of any pro application. Being reversible, it may have other uses: wizards, confirmation replacement, tree explorer.
The purpose of this foundation is to concept it and implement in various programming languages/platforms.