anchor.diff:              | NormalMode, [ Action action; "i"; BlockDelimiter c ] -> [ run action (InnerBlock c) ]
               | NormalMode, [ Action action; "a"; BlockDelimiter c ] -> [ run action (ABlock c) ]
               | NormalMode, [ ModeChange mode ] -> [ run (SwitchMode mode) Nothing ]
  -            | NormalMode, [ "a" ] -> [ run Move Right; run (SwitchMode InsertMode) Nothing ]
  +            | NormalMode, [ "a" ] -> [ run Move RightIncludingDelimiter; run (SwitchMode InsertMode) Nothing ]
               | NormalMode, [ "A" ] -> [ run Move EndOfLine; run (SwitchMode InsertMode) Nothing ]
               | NormalMode, [ "O" ] -> [ run (InsertLine After) Nothing; run (SwitchMode InsertMode) Nothing ]
               | NormalMode, [ "o" ] -> [ run (InsertLine Before) Nothing; run (SwitchMode InsertMode) Nothing ]
  
positive.code:         | Right -> 
              let line = editor.GetLine editor.Caret.Line
              editor.Caret.Offset, if editor.Caret.Column < line.Length then editor.Caret.Offset + 1 else editor.Caret.Offset
          | Left -> editor.Caret.Offset, if editor.Caret.Column > DocumentLocation.MinColumn then editor.Caret.Offset - 1 else editor.Caret.Offset
          | Up ->
              editor.Caret.Offset,
  
negative.code:     | Down
      | Left
      | Right
      | RightIncludingDelimiter
      | FirstNonWhitespace
      | StartOfLine
      | StartOfDocument
  