anchor.diff:              if m.Success && col <= startCol + 4 then RecLet else loop (i - 1)
       loop (lines.Length - 1)
   
  -let internal formatRange replaceDocument isFsiFile startLine startCol endLine endCol (lines : _ []) (s : string) config =
  +let internal formatRange replaceDocument isFsiFile (range : range) (lines : _ []) (s : string) config =
  +    let startLine = range.StartLine
  +    let startCol = range.StartColumn
  +    let endLine = range.EndLine
       let s = s.Replace("\r\n", "\n").Replace("\r", "\n")
  +
       // Convert from range to string positions
       let stringPos (r : range) =
           // Assume that content has been normalized (no "\r\n" anymore)
  
positive.code:             // Replace "and" by "type" or "let rec"
              if startLine = endLine then (pattern.Replace(sel, replacement, 1), p)
              else (new String(' ', startCol) + pattern.Replace(sel, replacement, 1), p)
          elif startLine = endLine then (sel, NoPatch)
          else (new String(' ', startCol) + sel, NoPatch)
  
      let post =
          if finish < s.Length && replaceDocument then 
  
negative.code:             if pos >= s.Length then s.Length - 1 else pos 
          (start, finish)
  
      
      let (start, finish) = stringPos range
      let pre = if start = 0 || not replaceDocument then "" else s.[0..start-1]
  
  