anchor.diff:              | NormalMode, [ "c"; Movement m ] -> [ run Delete m; run (SwitchMode InsertMode) Nothing ]
               | NormalMode, [ Action action; Movement m ] -> [ run action m ]
               | NormalMode, [ "u" ] -> [ run Undo Nothing ]
  +            | NormalMode, [ "<C-r>" ] -> [ run Redo Nothing ]
               | NormalMode, [ "d"; "d" ] -> [ run Delete WholeLineIncludingDelimiter ]
               | NormalMode, [ "c"; "c" ] -> [ run Delete WholeLine; run (SwitchMode InsertMode) Nothing ]
               | NormalMode, [ "y"; "y" ] -> [ run Yank WholeLineIncludingDelimiter ]
  
positive.code:     | Go
      | SwitchMode of VimMode
      | Undo
      | InsertLine of BeforeOrAfter
      | RepeatLastAction
      | ResetKeys
  
negative.code:                     editor.Caret.Offset <- editor.Caret.Offset - 1
              | Visual -> editor.SetSelection(start, finish)
              | Undo -> MiscActions.Undo editor
              | Redo -> MiscActions.Redo editor
              | InsertLine Before -> MiscActions.InsertNewLineAtEnd editor
              | InsertLine After -> editor.Caret.Column <- 1; MiscActions.InsertNewLine editor; CaretMoveActions.Up editor
              | _ -> ()
  