anchor.diff:      | Nothing
       | HalfPageUp
       | HalfPageDown
  +    | PageUp
  +    | PageDown
       | CurrentLocation
       | Selection
       | SelectionStart
  
positive.code:             let visibleLineCount = getVisibleLineCount editor
              let halfwayDown = Math.Min(editor.Document.LineCount, editor.Caret.Line + visibleLineCount / 2)
              editor.Caret.Offset, editor.GetLine(halfwayDown).Offset
          | CurrentLocation -> editor.Caret.Offset, editor.Caret.Offset+1
          | Selection -> 
              let selection = editor.Selections |> Seq.head
  
negative.code:         | "G" -> Some LastLine
          | "<C-d>" -> Some HalfPageDown
          | "<C-u>" -> Some HalfPageUp
          | "<C-f>" -> Some PageDown
          | "<C-b>" -> Some PageUp
          | _ -> None
  
      let (|FindChar|_|) character =
  