How to make your existing and new applications support in-memory transactions, multi-level and multi-document undo/redo, using Generics and C# 3.0 extension methods and lambda expressions. ...