An undo/redo library with static dispatch and manual command merging.
It uses the [Command Pattern] where the user modifies a receiver by
applying Command
s on it.
The library has currently two data structures that can be used to modify the receiver:
Stack
that pushes and pops commands to modify the receiver.Record
that can roll the state of the receiver forwards and backwards.