anchor.diff:              // 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)
  +        elif startLine = endLine then (sel, Nothing)
  +        else (new String(' ', startCol) + sel, Nothing)
   
       let post =
           if finish < s.Length && replaceDocument then 
  
positive.code: /// Format a part of source string using given config, and return the (formatted) selected part only.
  let formatSelectionOnly isFsiFile (r : range) (s : string) config =
      let lines = split s
      formatRange false isFsiFile r.StartLine r.StartColumn r.EndLine r.EndColumn lines s config
      
  /// Format a selected part of source string using given config; keep other parts unchanged. 
  let formatSelectionFromString isFsiFile (r : range) (s : string) config =
      let lines = split s
      let sourceToken = SourceTokenizer([], "/tmp.fsx")
  
      // Move to the section with real contents
      let r =
          if r.StartLine = r.EndLine then r
          else
              let startLine = getStartLine lines (r.StartLine - 1)
              let endLine = getEndLine lines (r.EndLine - 1) 
              // Notice that Line indices start at 1 while Column indices start at 0.
              makeRange (startLine + 1) 0 (endLine + 1) (lines.[endLine].Length - 1)
  
      let startTokenizer = sourceToken.CreateLineTokenizer(lines.[r.StartLine-1])
  
      let startCol = getStartCol r startTokenizer (ref 0L)
  
      let endTokenizer =
          if r.StartLine = r.EndLine then startTokenizer 
          else sourceToken.CreateLineTokenizer(lines.[r.EndLine-1])
  
      let endCol = getEndCol r endTokenizer (ref 0L)
      formatRange true isFsiFile r.StartLine startCol r.EndLine endCol lines s config    
  
  type internal BlockType =
     | List
  
negative.code:         let pattern = if patch = RecType then Regex("type") else Regex("let rec")
          let formatteds = split (pattern.Replace(result, "and", 1))
          reconstructSourceCode startCol formatteds pre post
      | Nothing ->
          let result = formatSelection isFsiFile selection config
          let formatteds = split result
          reconstructSourceCode startCol formatteds pre post
  