A Compensation operation can compensate for the action of a log operation.
A Compensation operation itself is not undo-able, i.e., it is loggable but
not undoable.
A Compensation operation is generated by the logging system when it calls
undoable.generateUndo(). GenerateUndo should be the only way a
compensation operation can be made.