If no arg is passed to redo, the last "undone" operation will be called again. Is this unexpected behavior? In my opinion, this follows the principle of least surprise because it works exactly the same way as ``undo`` in this regard.