anchor.diff:      let isWORDChar c = not (Char.IsWhiteSpace c)
       let isNonBlankButNotWordChar c = isWORDChar c && not (isWordChar c)
       let isEOLChar c = c = '\r' || c = '\n'
  -    let isWhiteSpaceOrEOL c = Char.IsWhiteSpace c || isEOLChar c
   
       let (|WhiteSpace|_|) c =
           if Char.IsWhiteSpace c then Some WhiteSpace else None
   
       let (|IsWordChar|_|) c =
           if isWordChar c then Some IsWordChar else None
  -
  -    let (|IsWORDChar|_|) c =
  -        if isWORDChar c then Some IsWORDChar else None
   
       let (|EOLChar|_|) c =
           if isEOLChar c then Some EOLChar else None
  
positive.code:             match editor.[editor.CaretOffset] with
              | WhiteSpace ->
                  let matchFunc c = Char.IsWhiteSpace c && (not (isEOLChar c))
                  let start, finish = getWordRange editor matchFunc
                  start, finish
              | _ -> 
                  let fWordChar = getWordCharFunc editor.[editor.CaretOffset]
                  let start, finish = getWordRange editor fWordChar
                  start, finish
          | InnerWORD ->
              match editor.[editor.CaretOffset] with
              | WhiteSpace ->
                  let matchFunc c = Char.IsWhiteSpace c && (not (isEOLChar c))
                  let start, finish = getWordRange editor matchFunc
                  start, finish
              | _ -> 
                  let start, finish = getWordRange editor isWORDChar
                  start, finish
          | AWord -> 
              let getWordCharFunc = function
                  | IsWordChar -> isWordChar
  
negative.code:         seq { editor.CaretOffset .. -1 .. 1 }
          |> Seq.tryFind(fun index -> not (fWordChar editor.[index-1]))
          |> Option.defaultValue 0
  
      let paragraphBackwards (editor:TextEditor) =
          seq { editor.CaretLine-1 .. -1 .. 1 }
  