anchor.diff:      | ABlock of string * string
       | InnerBlock of string * string
       | WholeLine
  +    | LastLine
       // motions
       | Up
       | Down
  
positive.code:         | "b" -> Some WordBackwards
          | "e" -> Some ForwardToEndOfWord
          | "E" -> Some BackwardToEndOfWord
          | _ -> None
  
      let (|FindChar|_|) character =
  
negative.code:         | StartOfDocument -> editor.Caret.Offset, 0
          | FirstNonWhitespace -> editor.Caret.Offset, line.Offset + editor.GetLineIndent(editor.Caret.Line).Length
          | WholeLine -> line.Offset, line.EndOffset
          | LastLine -> 
              let lastLine = editor.GetLine editor.Document.LineCount
              editor.Caret.Offset, lastLine.Offset
          | ToCharInclusiveBackwards c ->
              match findCharBackwardsOnLine editor line c with
              | Some index -> editor.Caret.Offset, index
  