undone : specify the return type of `Do` and `Undo` in the documentation